JDBC的基本操作以及JAVA的分层架构
感想
今天是实训的第二天,总体来说体验要比第一天要好一些,因为配置环境这一环节已经基本结束了,众所周知,就是简单地配置一下JAVA环境就可以直接劝退一批学JAVA的人,所以这一步挺过来了,接下来码代码的事看上去也就没那么困难了。今天接上昨天的JDBC内容,又讲解了JDBC的具体的方法操作,谭老师也生动地讲解了ResultSet的底层操作原理。除此之外,我们还了解了JAVA的三层基本架构,他们分别是控制层、业务层以及数据持久层,了解到了他们之间的具体联系以及数据流动,受益良多。
JDBC操作:JDBC的增删改查(PreparedStatement)
首先利用SequelPro建立一个名为userinfo的数据库,在库中新建一个叫user的表,表中内容分别有varchar类型的username以及varchar类型的pwd。
然后在main函数中写如下的数据库连接代码:
JDBCDemo jd=new JDBCDemo();
try {
//1.加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e){
e.printStackTrace();
}
//2.建立连接
Connection connection=null;
try {
//协议.子协议://目标IP地址:端口/
connection= DriverManager.getConnection("jdbc:mysql://***.**.**.***:3306/userInfo","zhanghao","mima");
}
catch (Exception e){
e.printStackTrace();
}
//添加用户
jd.addUser("zzj","123",connection);
//删除用户
jd.deleteUser("zzj",connection);
//修改用户密码
jd.updateUser("zzj","321",connection);
//查看用户密码
String pwd=jd.showPwd("zzj",connection);
System.out.print(pwd);
try {
connection.close();
}
catch (SQLException e){
e.printStackTrace();
}
增加用户:
public void addUser(String username,String pwd,Connection con){
String sql="insert into user (username,pwd) values(?,?)";
PreparedStatement pstmt=null;
try {
pstmt=(PreparedStatement)con.prepareStatement(sql);
pstmt.setString(1,username);
pstmt.setString(2,pwd);
pstmt.execute();
pstmt.close();
}catch (SQLException e){
e.printStackTrace();
}
}
删除用户:
public void deleteUser(String username,Connection con){
String sql="delete from user where username=?";
PreparedStatement pstmt=null;
try {
pstmt=(PreparedStatement) con.prepareStatement(sql);
pstmt.setString(1,username);
pstmt.executeLargeUpdate();
pstmt.close();
}catch (SQLException e){
e.printStackTrace();
}
}
修改密码:
public void updateUser(String username,String newpwd,Connection con){
String sql="update user set pwd=? where username=?";
PreparedStatement pstmt=null;
try {
pstmt=(PreparedStatement) con.prepareStatement(sql);
pstmt.setString(1,newpwd);
pstmt.setString(2,username);
pstmt.executeUpdate();
pstmt.close();
}catch (SQLException e){
e.printStackTrace();
}
}
查询密码:
public String showPwd(String username,Connection con){
String sql="select pwd from user where username=?";
PreparedStatement pstmt=null;
String result="notFound";
try {
pstmt=(PreparedStatement)con.prepareStatement(sql);
pstmt.setString(1,username);
ResultSet rs=pstmt.executeQuery();
while (rs.next()){
result=rs.getString("pwd");
}
rs.close();
pstmt.close();
}
catch (SQLException e){
e.printStackTrace();
}
finally {
return result;
}
}
JAVA的三层基本架构
JAVA的三层基本构架分别是控制层、业务层和数据持久层。
数据持久层:用来处理数据库数据,将数据库数据与业务数据进行交互处理,即DAO层,操作数据库将数据入库或出库。
业务层:执行业务操作,调用数据持久层的内容,返回业务所需要的数据。
控制层:外部与业务的交互,通知业务层处理控制逻辑。
控制层、业务层和数据持久层之间的关系
(连线方向代表数据流动或操作请求对象)