获取数据库连接
static Connection con=JdbcUtils.MyUtils();//这个连接类静态获取要自己定义
插入
public static void insert() throws SQLException{ QueryRunner qr=new QueryRunner(); String sql="insert into sort(sname,sprice,sdesc) values (?,?,?)";
//用数组封装插入数据 Object []obj={"小米手机",2899,"大甩卖"};
//obj是数组,位置要求插入的是可变参数,这里用数组来满足 int re=qr.update(con,sql,obj); System.out.println(re); DbUtils.close(con); }
修改
public static void update() throws SQLException{ QueryRunner qr=new QueryRunner(); String sql="update sort set sname=?,sprice=?,sdesc=? where sid=?"; Object [] obj={"花",1000,"热卖",11}; int r=qr.update(con,sql,obj); System.out.println(r); DbUtils.close(con); }
删除
public static void delete() throws SQLException{ QueryRunner qr=new QueryRunner(); String sql="delete from sort where sid=?"; int re=qr.update(con,sql,11); System.out.println(re); DbUtils.close(con); }
查询--查询有多种处理结果集的方式,这里写8种
ArrayHandler |
将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值 |
ArrayListHandler |
将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。 |
BeanHandler |
将结果集中第一条记录封装到一个指定的javaBean中。 |
BeanListHandler |
将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中 |
ColumnListHandler |
将结果集中指定的列的字段值,封装到一个List集合中 |
ScalarHandler |
它是用于单数据。例如select count(*) from 表操作。 |
MapHandler |
将结果集第一行封装到Map集合中,Key 列名, Value 该列数据 |
MapListHandler |
将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合 |
private static void MapListHandler() throws SQLException { /* * 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合 */ QueryRunner qr=new QueryRunner(); String sql="select * from sort"; List<Map<String,Object>> result=qr.query(con, sql,new MapListHandler()); for(Map<String,Object> map:result){ for(String key:map.keySet()){ System.out.print(key+"..."+map.get(key)+" "); } System.out.println(); } DbUtils.close(con); } private static void MapHandler() throws SQLException { /* * 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据 */ QueryRunner qr=new QueryRunner(); String sql="select * from sort"; Map<String,Object> result=qr.query(con, sql,new MapHandler()); for(String key:result.keySet()){ System.out.print(key+"..."+result.get(key)); } DbUtils.close(con); } private static void ScalarHandler() throws SQLException { /* * 它是用于单数据。例如select count(*) from 表操作 */ QueryRunner qr=new QueryRunner(); String sql="select count(*) from sort"; Object obj=qr.query(con, sql,new ScalarHandler<Object>()); System.out.println(obj); DbUtils.close(con); } private static void ColumnListHandler() throws SQLException { /* * 将结果集中指定的列的字段值,封装到一个List集合中 */ QueryRunner qr=new QueryRunner(); String sql="select * from sort"; //返回的是一个String List<String> result=qr.query(con, sql,new ColumnListHandler<String>("sname")); for(Object obj:result){ System.out.println(obj); } DbUtils.close(con); } private static void BeanListHandler() throws SQLException { /* * 将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中 */ QueryRunner qr=new QueryRunner(); String sql="select * from sort"; //返回的是List集合 List<Sort> result=qr.query(con, sql,new BeanListHandler<Sort>(Sort.class)); for(Sort s:result){ System.out.println(s); } DbUtils.close(con); } private static void BeanHandler() throws SQLException { /* * 将结果集中第一条记录封装到一个指定的javaBean中 */ QueryRunner qr=new QueryRunner(); String sql="select * from sort"; //通过反射获得一个Sort对象,加了Sort的泛型 Sort s=qr.query(con, sql,new BeanHandler<Sort>(Sort.class)); //因为重写了toString(),可直接打印 System.out.println(s); DbUtils.close(con); } private static void ArrayListHandler() throws SQLException { /* * 将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中 */ QueryRunner qr=new QueryRunner(); String sql="select * from sort"; //返回的是一个list,每条list是一个Object数组 List<Object[]> result=qr.query(con,sql,new ArrayListHandler()); //这里用到双重for循环遍历 for(Object[] obj:result){ for(Object o:obj){ System.out.print(o); } System.out.println(); } DbUtils.close(con); } private static void ArrayHandler() throws SQLException { /* * 将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值 */ QueryRunner qr=new QueryRunner(); String sql="select * from sort"; //返回的是一个Object数组 Object [] obj=qr.query(con,sql,new ArrayHandler()); for(Object o:obj){ System.out.print(o); } DbUtils.close(con); }
Druid连接池可参考: