数据库访问JavaBean

设计

所需组件:
1.数据库test及其数据库表userinfo(userid,username,sex)
2.在项目src下建立属性文件db.properties,存放数据库基本信息
3.建立一个获取连接和释放资源的工具类JdbcUtil.java
4.建立类User.java实现记录信息对象化,体现面向对象程序设计思想
5.建立UserDao.java封装基本的数据库操作:
添加用户:public void add(User user)
修改用户:public void update(User user)
删除用户:public void delete(String userId)
ID查询:public User findBYid(String userId)
查询全部:public ListQueryAll()

实现

1.在src下建立文件db.properties

driver=com.microsoft.sqlserver.jdbc.SQLServerDriver//数据库驱动程序名
url=jdbc:sqlserver://localhost:1433;DatabaseName=test
user=sa
password=123456

2.建立获取连接和释放资源的工具类JdbcUtil.java

package beans;
import java.sql.*;
import java.util.Properties;
//建立一个获取连接和释放资源的工具类
public final class JdbcUtil {
    private static String driver;
    private static String url;
    private static String user;
    private static String password;
    private static Properties pr=new Properties();
    private JdbcUtil(){}
   //设计该工具类的静态初始化器中的代码,该代码在装入类时执行,且只执行一次
    static{
        try{
            pr.load(JdbcUtil.class.getClassLoader().getResourceAsStream("db.properties"));
            driver=pr.getProperty("driver");
            url=pr.getProperty("url");
            user=pr.getProperty("user");
            password=pr.getProperty("password");
            Class.forName(driver);
        }catch(Exception e){
            throw new ExceptionInInitializerError();
        }
    }
    //设计获得连接对象的方法getConnection()
    public static Connection getConnection() throws SQLException{
        return DriverManager.getConnection(url,user,password);
    }
    //设计释放结果集,语句和连接的方法free()
    public static void free(ResultSet rs,Statement st,Connection conn){
        try{
            if(rs!=null) rs.close();
        }catch(SQLException e){e.printStackTrace();
        }finally{
            try{if(st!=null) st.close();
            }catch(SQLException e){e.printStackTrace();
            }finally{
                if(conn!=null)
                    try{conn.close();
                    }catch(SQLException e){e.printStackTrace();
                    }
            }
        }
    }
}

3.建立User.java实现记录信息对象化,基于对象对数据库关系表进行操作。

package beans;
//实现记录信息对象话,基于对象对数据库关系表进行操作
public class User {
    private String userid,username,sex;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getUserid() {
        return userid;
    }
    public void setUserid(String userid) {
        this.userid = userid;
    }
    @Override
    public String toString() {
        return userid+" "+username+" "+sex;
    }

}

4.建立UserDao.java封装基本的数据库操作。

package beans;
//封装基本的数据库操作
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class UserDao {
  //向数据库中添加用户记录的方法add()
    public void add(User user)throws Exception{
        Connection conn=null;
        PreparedStatement ps=null;
        try{
            conn=JdbcUtil.getConnection();
            String sql="insert into userinfo value(?,?,?)";
            ps=conn.prepareStatement(sql);
            ps.setString(1,user.getUserid());
            ps.setString(2,user.getUsername());
            ps.setString(3,user.getSex());
            ps.executeUpdate();
        }finally{JdbcUtil.free(null, ps, conn);}
    }
    //修改数据库用户记录的方法update()
    public void update(User user)throws Exception{
        Connection conn=null;
        PreparedStatement ps=null;
        try{
            conn=JdbcUtil.getConnection();
            String sql="update userinfo set username=?,sex=? where userid=?";
            ps=conn.prepareStatement(sql);
            ps.setString(1,user.getUsername());
            ps.setString(2,user.getSex());
            ps.setString(3,user.getUserid());
            ps.executeUpdate();
        }finally{JdbcUtil.free(null, ps, conn);}
    }
    //删除数据库用户记录的方法delete()
    public void delete(String userId)throws Exception{
        Connection conn=null;
        PreparedStatement ps=null;
        try{
            conn=JdbcUtil.getConnection();
            String sql="delete from userinfo where userid=?";
            ps=conn.prepareStatement(sql);
            ps.setString(1,userId);
            ps.executeUpdate();
        }finally{JdbcUtil.free(null, ps, conn);}    
    }
    //根据ID查询用户的方法findBYid()
    public User findByid(String userId)throws Exception{
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        User user=null;
        try{
            conn=JdbcUtil.getConnection();
            String sql="select * from userinfo where userid=?";
            ps=conn.prepareStatement(sql);
            ps.setString(1,userId);
            rs=ps.executeQuery();
            //System.out.println(rs.next());
            if(rs.next()){
                user=new User();
                user.setUserid(rs.getString(1));
                user.setUsername(rs.getString(2));
                user.setSex(rs.getString(3));
            }
        }finally{JdbcUtil.free(rs, ps, conn);}
        return user;
    }
    //查询全部用户的方法QueryAll()
    public List<User> QueryAll()throws Exception{
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        List<User> userList=new ArrayList<User>();
        try{
            conn=JdbcUtil.getConnection();
            String sql="select * from userinfo";
            ps=conn.prepareStatement(sql);
            rs=ps.executeQuery();
            while(rs.next()){
                User user=new User();
                user.setUserid(rs.getString(1));
                user.setUsername(rs.getString(2));
                user.setSex(rs.getString(3));
                userList.add(user);
            }
        }finally{JdbcUtil.free(rs, ps, conn);}
        return userList;
    }
}

使用

建立jsp文件usebean.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page language="java" import="beans.User"%>
<%@ page language="java" import="beans.UserDao"%>
<html>
  <head>    
    <title>javaBean访问数据库测试</title>
  </head> 
  <body> 
  <% UserDao d=new UserDao(); //创建对象
     User user = d.findByid("201501");  获取返回对象
    out.println(user.getUserid()+" "+user.getUsername()+" "+user.getSex());  //输出对象属性  
  %>
  </body>
</html>
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值