jdbc+common_dbutil实现增删改查
2020-03-25 23:56 默默不语 阅读(262) 评论(0) 编辑 收藏 举报package day01; import java.sql.Connection; import java.sql.Date; import java.sql.Driver; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Savepoint; import java.sql.Statement; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import org.apache.commons.dbutils.DbUtils; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import com.mchange.v2.c3p0.ComboPooledDataSource; import entity.Emp; import util.DBUtil; import util.DataUtil; /** *@author chenmeiqi *@version 2020年3月18日 上午11:39:55 */ public class Demo07 { public static void main(String[] args) throws ParseException { //common-dbutil的使用 //1.加载驱动 DbUtils.loadDriver("oracle.jdbc.OracleDriver"); //2.使用连接池获取数据源dataSource ComboPooledDataSource cpds = new ComboPooledDataSource();//向上造型 cpds.setJdbcUrl("jdbc:oracle:thin:@127.0.0.1:1521:orcl"); cpds.setUser("scott"); cpds.setPassword("Oracle11g"); //cpds.setMaxPoolSize(5); // Connection conn = null; try { // conn = cpds.getConnection(); //通过dataSource来创建一个sql执行器 //pmdKnownBroken:检查可变参数和sql中可替换参数个数是否相等 //如果有dataSource参数,则这个QueryRunner已经管理了某个数据源 QueryRunner qr = new QueryRunner(cpds); //4.真正去执行 //查询 // String sql = "select empno id,ename name,hiredate rzrq from emp where job=? and deptno=?"; // 传参 // Object[] params = new Object[] {"SALESMAN",30}; // //ResultSetHandler接受结果集 // //注:以下写法取不到值,因为并没有循环ResultSet遍历赋值给实体类,所以要求数据库字段名和实体类的属性名,否则无法自动为我们赋值 // List<Emp> emps = qr.query(sql, params, new BeanListHandler<Emp>(Emp.class)); // for(Emp emp:emps) { // System.out.println(emp.toString()); // } //增 // DataUtil dateUtil = new DataUtil(); // String sql = "insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values (?,?,?,?,?,?,?,?)"; // Object[] param = new Object[] {0001,"chenmeiqi","开发",7839,dateUtil.utilToSql("2020-3-21"),5000,1000,30}; // int rows = qr.update(sql, param); // System.out.println("影响行数:"+rows); //删 // String sql = "delete from emp where empno=?"; // int rows = qr.update(sql, 1); // System.out.println("影响行数:"+rows); //改 String sql = "update emp set sal=?,comm=? where empno=?"; Object[] param = new Object[] {6000,2000,7839}; int rows = qr.update(sql, param); System.out.println("影响行数:"+rows); // Object[] param = new Object[] {0001,"chenmeiqi","开发",7839,dateUtil.utilToSql("2020-3-21"),5000,1000,30}; // int rows = qr.update(sql, param); // System.out.println("影响行数:"+rows); // qr.batch(sql, params); //如果没有dataSource参数,则这个QueryRunner没有关联数据源,那么真正执行查询的时候再进行关联 // QueryRunner qr = new QueryRunner(cpds); // qr.batch(conn, sql, params) } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2019-03-25 系统质量属性之——性能
2019-03-25 《信息技术手册查重错误比对分析》开发记录7