时间:2021-07-01 10:21:17 帮助过:9人阅读
注:执行SQL语句对象
读取配置文件
//创建属性对象 该对象用于读取属性配置文件 Properties p = new Properties(); //得到文件的输入流 InputStream ips = Demo02.class.getClassLoader().getResourceAsStream("jdbc.properties"); //把文件加载到属性对象中 p.load(ips); //读取数据 String driver = p.getProperty("driver"); String url = p.getProperty("url"); String username = p.getProperty("username"); String password = p.getProperty("password");
jdbc.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/newdb3?useUnicode=true&characterEncoding=UTF-8 username=root password=root
下载dbcp相关jar包,在pom.xml文件中添加一下内容
<!-- dbcp相关 --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency>
DBUtils
public class DBUtils { private static BasicDataSource ds; static { //创建属性对象 该对象用于堆区属性配置文件 Properties p = new Properties(); //得到文件输入流 InputStream ips = DBUtils.class.getClassLoader().getResourceAsStream("jdbc.properties"); //把文件加载到属性对象中 try { p.load(ips); } catch (IOException e) { e.printStackTrace(); } String driver = p.getProperty("driver"); String url = p.getProperty("url"); String username = p.getProperty("username"); String password = p.getProperty("password"); /* * //注册驱动 Class.forName(driver); Connection conn = * DriverManager.getConnection(url, username, password); */ //创建数据库连接池对象 ds = new BasicDataSource(); //设置数据库连接信息 ds.setDriverClassName(driver); ds.setUrl(url); ds.setUsername(username); ds.setPassword(password); //设置初始连接数量 ds.setInitialSize(3); //设置最大连接数量 ds.setMaxActive(6); } public static Connection getConnection() throws SQLException, ClassNotFoundException, IOException { //从连接池中获取连接 抛出异常 Connection conn = ds.getConnection(); System.err.println(conn); return conn; } }
注:创建执行SQL对象时,如果有变量则使用 PreparedStatement 没有则使用 Statement
如下:有变量
//获取数据库连接 try (Connection conn = DBUtils.getConnection()) { //球队 String sql = "inset into team values(null,?)"; //创建执行sql对象 如果需要获取自增属性值则多加一个参数 Statement.RETURN_GENERATED_KEYS
PreparedStatement ps = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); //执行sql ps.executeUpdate(); //获取自增主键值 ResultSet rs = ps.getGeneratedKeys(); while(rs.next()) { int teamId = rs.getInt(1); String sql2 = "insert into player values(null,?,?)"; PreparedStatement ps2 = conn.prepareStatement(sql2); ps2.setString(1, playerName); ps2.setInt(2, teamId); ps2.executeUpdate(); System.err.println("OK"); } } catch (Exception e) { e.printStackTrace(); }
无参数
try (Connection conn = DBUtils.getConnection()){ //创建SQL执行对象 Statement s = conn.createStatement(); String sql = "select * from jdbc_user"; ResultSet rs = s.executeQuery(sql); while(rs.next()) { System.err.println(rs.getString("username")); } } catch (Exception e) { e.printStackTrace(); }
Statement.RETURN_GENERATED_KEYS
jdbc
标签:drive sql com 使用 input maven values col 推荐