(2)数据库的学习

//下面实现的是增删改查的模板,我尽力都解释 

  1 class DbUtil {//这个是连接数据库的工具类,是用来调用的(当连接数据库的时候)
  2 //定义变量,URL是数据库的地址,USER是登录数据库需要的账号,而PASSWORD是登录的密码
  3     public static final String URL = "jdbc:mysql://localhost:3306/imooc";
  4     public static final String USER = "liulx";
  5     public static final String PASSWORD = "123456";
  6 //conn这个是Connection类的对象
  7     private static Connection conn = null;
  8 //静态块
  9     static{
 10 //tryz--catch就是你感觉代码可能出错,然后出错后你要怎么做(catch里面)
 11 //这个是防止连接失败的时候
 12         try {
 13             //1.加载驱动程序
 14             Class.forName("com.mysql.jdbc.Driver");
 15             //2. 获得数据库连接
 16             conn = DriverManager.getConnection(URL, USER, PASSWORD);
 17         } catch (ClassNotFoundException e) {
 18             e.printStackTrace();
 19         } catch (SQLException e) {
 20             e.printStackTrace();
 21         }
 22     }
 23 
 24 //返回对象,可以在外面直接类.方法名调用,因为它被static修饰,是静态方法
 25     public static Connection getConnection(){
 26         return conn;
 27     }
 28 }
 29 
 30 //模型(实体类)与数据库里面的列相对应,我理解成是数据库的映射,就像镜子中的你
 31 package liulx.model;
 32 
 33 import java.util.Date;
 34 
 35 public class Goddess {
 36 
 37     private Integer id;
 38     private String user_name;
 39     private Integer sex;
 40     private Integer age;
 41     private Date birthday; //注意用的是java.util.Date
 42     private String email;
 43     private String mobile;
 44     private String create_user;
 45     private String update_user;
 46     private Date create_date;
 47     private Date update_date;
 48     private Integer isDel;
 49 //getter setter方法是方便外面的赋值和调用,get就是获取,set就是设置
 50     //getter setter方法。。。
 51 }
 52 
 53 //---------dao层--------------
 54 //dao层就是实现类(我理解就是增删改查的实现代码)
 55 package liulx.dao;
 56 //import是包,这个一般都是自动的
 57 import liulx.db.DbUtil;
 58 import liulx.model.Goddess;
 59 
 60 import java.sql.Connection;
 61 import java.sql.ResultSet;
 62 import java.sql.SQLException;
 63 import java.sql.Statement;
 64 import java.util.ArrayList;
 65 import java.util.List;
 66 
 67 
 68 
 69 public class GoddessDao {
 70     //增加操作的方法
 71     public void addGoddess(Goddess g) throws SQLException {
 72         //获取连接
 73         Connection conn = DbUtil.getConnection();//这个是上面工具类调用其方法,返回conn
 74         //sql
 75 //这个是对数据库的操作的sql语言
 76         String sql = "INSERT INTO imooc_goddess(user_name, sex, age, birthday, email, mobile,"+
 77             "create_user, create_date, update_user, update_date, isdel)"
 78                 +"values("+"?,?,?,?,?,?,?,CURRENT_DATE(),?,CURRENT_DATE(),?)";
 79         //预编译
 80         PreparedStatement ptmt = conn.prepareStatement(sql); //预编译SQL,减少sql执行
 81 
 82         //传参
 83         ptmt.setString(1, g.getUser_name());
 84         ptmt.setInt(2, g.getSex());
 85         ptmt.setInt(3, g.getAge());
 86         ptmt.setDate(4, new Date(g.getBirthday().getTime()));
 87         ptmt.setString(5, g.getEmail());
 88         ptmt.setString(6, g.getMobile());
 89         ptmt.setString(7, g.getCreate_user());
 90         ptmt.setString(8, g.getUpdate_user());
 91         ptmt.setInt(9, g.getIsDel());
 92 
 93         //执行
 94         ptmt.execute();
 95     }
 96 
 97 //更新操作方法
 98     public void updateGoddess(){
 99         //获取连接
100         Connection conn = DbUtil.getConnection();
101         //sql, 每行加空格,有点像增加方法
102         String sql = "UPDATE imooc_goddess" +
103                 " set user_name=?, sex=?, age=?, birthday=?, email=?, mobile=?,"+
104                 " update_user=?, update_date=CURRENT_DATE(), isdel=? "+
105                 " where id=?";
106         //预编译
107         PreparedStatement ptmt = conn.prepareStatement(sql); //预编译SQL,减少sql执行
108 
109         //传参
110         ptmt.setString(1, g.getUser_name());
111         ptmt.setInt(2, g.getSex());
112         ptmt.setInt(3, g.getAge());
113         ptmt.setDate(4, new Date(g.getBirthday().getTime()));
114         ptmt.setString(5, g.getEmail());
115         ptmt.setString(6, g.getMobile());
116         ptmt.setString(7, g.getUpdate_user());
117         ptmt.setInt(8, g.getIsDel());
118         ptmt.setInt(9, g.getId());
119 
120         //执行
121         ptmt.execute();
122     }
123 
124 
125 //删除操作方法
126 public void delGoddess(){
127         //获取连接
128 Connection conn = DbUtil.getConnection();
129         //sql, 每行加空格
130 String sql = "delete from imooc_goddess where id=?";
131         //预编译SQL,减少sql执行
132 PreparedStatement ptmt = conn.prepareStatement(sql);
133 
134         //传参
135 ptmt.setInt(1, id);
136 
137         //执行
138 ptmt.execute();
139     }
140 
141 //查询,列出sql数据
142 public List<Goddess> query() throws SQLException {
143 //获取连接
144 Connection conn = DbUtil.getConnection();
145 //
146 Statement stmt = conn.createStatement();
147         ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM imooc_goddess");
148 
149         List<Goddess> gs = new ArrayList<Goddess>();
150         Goddess g = null;
151 //将数据列出来
152 while(rs.next()){
153             g = new Goddess();
154             g.setUser_name(rs.getString("user_name"));
155             g.setAge(rs.getInt("age"));
156 
157             gs.add(g);
158         }
159         return gs;
160     }
161 
162     public Goddess get(){
163         Goddess g = null;
164         //获取连接
165 Connection conn = DbUtil.getConnection();
166         //sql, 每行加空格
167 String sql = "select * from  imooc_goddess where id=?";
168         //预编译SQL,减少sql执行
169 PreparedStatement ptmt = conn.prepareStatement(sql);
170         //传参
171 ptmt.setInt(1, id);
172         //执行
173 ResultSet rs = ptmt.executeQuery();
174         while(rs.next()){
175             g = new Goddess();
176             g.setId(rs.getInt("id"));
177             g.setUser_name(rs.getString("user_name"));
178             g.setAge(rs.getInt("age"));
179             g.setSex(rs.getInt("sex"));
180             g.setBirthday(rs.getDate("birthday"));
181             g.setEmail(rs.getString("email"));
182             g.setMobile(rs.getString("mobile"));
183             g.setCreate_date(rs.getDate("create_date"));
184             g.setCreate_user(rs.getString("create_user"));
185             g.setUpdate_date(rs.getDate("update_date"));
186             g.setUpdate_user(rs.getString("update_user"));
187             g.setIsDel(rs.getInt("isdel"));
188         }
189         return g;
190     }
191 }
View Code

上面有解析,我尽量每个代码都讲

会当凌绝顶,一览众山小
原文地址:https://www.cnblogs.com/quenvpengyou/p/12804745.html