1 package com.study.db;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.ResultSet;
6 import java.sql.Statement;
7
8 public class DBUtil {
9
10 private static final String URL="jdbc:mysql://localhost:3306/demo_jdbc";
11 private static final String NAME="root";
12 private static final String PASSWORD="root";
13
14 public static void main(String[] args) throws Exception{
15
16 //1.加载驱动程序
17 Class.forName("com.mysql.jdbc.Driver");
18 //2.获得数据库的连接
19 Connection conn = DriverManager.getConnection(URL, NAME, PASSWORD);
20 //3.通过数据库的连接操作数据库,实现增删改查
21 Statement stmt = conn.createStatement();
22 ResultSet rs = stmt.executeQuery("select user_name,age from imooc_goddess");//选择import java.sql.ResultSet;
23 while(rs.next()){//如果对象中有数据,就会循环打印出来
24 System.out.println(rs.getString("user_name")+","+rs.getInt("age"));
25 }
26 }
27 }
2 public void addGoddess(Goddess g) throws Exception{
3 Connection con=DBUtil.getConnection();//首先拿到数据库的连接
4 String sql="" +
5 "insert into imooc_goddess"+
6 "(user_name,sex,age,birthday,email,mobile,"+
7 "create_user,create_date,update_user,update_date,isdel) "+
8 "values("+
9 "?,?,?,?,?,?,?,current_date(),?,current_date(),?)";//参数用?表示,相当于占位符;用mysql的日期函数current_date()来获取当前日期
10 //预编译sql语句
11 PreparedStatement psmt = con.prepareStatement(sql);
12 //先对应SQL语句,给SQL语句传递参数
13 psmt.setString(1, g.getUserName());
14 psmt.setInt(2, g.getSex());
15 psmt.setInt(3, g.getAge());
16 //注意:setDate()函数第二个参数需要的是java.sql.Date类型,我们传进来的是java.util.Date,类型不符,需要做一下转换
17 psmt.setDate(4, new Date(g.getBirthday().getTime()));
18 psmt.setString(5, g.getEmail());
19 psmt.setString(6, g.getMobile());
20 psmt.setString(7, g.getCreateUser());
21 psmt.setString(8, g.getUpdateUser());
22 psmt.setInt(9, g.getIsDel());
23 //执行SQL语句
24 psmt.execute();
25 /**
26 * prepareStatement这个方法会将SQL语句加载到驱动程序conn集成程序中,但是并不直接执行
27 * 而是当它调用execute()方法的时候才真正执行;
28 *
29 * 上面SQL中的参数用?表示,相当于占位符,然后在对参数进行赋值。
30 * 当真正执行时,这些参数会加载在SQL语句中,把SQL语句拼接完整才去执行。
31 * 这样就会减少对数据库的操作
32 */
33 }
public List<Goddess> query() throws Exception{
27 Connection con=DBUtil.getConnection();
28 Statement stmt=con.createStatement();
29 ResultSet rs=stmt.executeQuery("select user_name,age from imooc_goddess");
30 List<Goddess> gs=new ArrayList<Goddess>();
31 Goddess g=null;
32 while(rs.next()){//如果对象中有数据,就会循环打印出来
33 g=new Goddess();
34 g.setUserName(rs.getString("user_name"));
35 g.setAge(rs.getInt("age"));
36 gs.add(g);
37 }
38 return gs;
39 }