简单的JDBC连接MYSQL数据库

学习了JDBC,进行数据库连接的简单代码

JDBC连接数据库七步骤
1.载入JDBC驱动
2.定义连接URL
3.建立连接
4.创建PreparedStatement对象
5.建立查询或更新
6.结果处理
7.关闭连接
  1. 工具类连接数据库
public class DbUtils {
	//1.定义MySQL驱动
	private  static final String driver="org.gjt.mm.mysql.Driver"; 
	//2.定义连接URL
	private static final String url="jdbc:mysql://localhost:3306/testdb?&useUnicode=true&characterEncoding=utf-8";
	//2.1定义用户名和密码
	private static final String user="root";
	private static final String pwd="";
	//1.1定义静态代码块载入JDBC驱动,静态代码块只执行一次
	static{
		try {
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	//3.建立连接  创建静态的连接的方法  方便调用
	public static Connection getConn(){
		//3.1使用DriverManager类的getConnection(url,user,pwd)方法建立连接,返回一个Connection对象
		try {
			return DriverManager.getConnection(url,user,pwd);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
	//7.1关闭Connection连接
	public static void close(Connection conn){
		try {
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	//7.2关闭PreparedStatement连接
	public static void close(PreparedStatement pstm){
		try {
			pstm.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	//7.3关闭ResultSet连接
	public static void close(ResultSet rs){
		try {
			rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

  1. 实体类User类
public class User {
	private int id;
	private String name;
	private String pwd;
	public int setId(int id ){
		return this.id=id;
	}
	public int getId(){
		return id;
	}
	public String setName(String name){
		return this.name=name;
	}
	public String getName(){
		return  name;
	}
	public String setPwd(String pwd){
		return this.pwd=pwd;
	}
	public String getPwd(){
		return pwd;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + "]";
	}
	
}
  1. Dao层接口
public interface UserDao {
	boolean add(User u);  //添加数据的方法
	boolean del(int id);  //根据id删除数据的方法
	boolean modify(User u);//修改数据的方法
	User queryByNamePwd(String UserName,String UserPwd);//根据密码用户名查询
	List<User> queryAll();//查询所有的数据方法
}
  1. Dao层接口实现类
public class UserDaoImpl implements UserDao{
    //添加数据
	@Override
	public boolean add(User u) {
		//定义Connection对象
		Connection conn=null;
		//定义PreparedStatement对象
		PreparedStatement pstm=null;
		try {
			//调用工具类DbUtils建立与数据库的连接 
			conn=DbUtils.getConn(); 
			//4.创建PreparedStatement对象与SQL语句
			String sql=" insert into user(name,pwd) values(?,?) ";
			pstm=conn.prepareStatement(sql);
			pstm.setObject(1,u.getName());
			pstm.setObject(2,u.getPwd());
			//5.执行查询或更新
			int r=pstm.executeUpdate();
			//6.处理结果
			return r>0;
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}finally{
			//7.关闭连接
			DbUtils.close(pstm);
			DbUtils.close(conn);
		}
	}
//根据id删除数据
	@Override
	public boolean del(int id) {
		//定义Connection对象
		Connection conn=null;
		//定义PreparedStatement对象
		PreparedStatement pstm=null;
		try {
			//调用工具类DbUtils与数据库建立连接
			conn=DbUtils.getConn();
			//创建PreparedStatement对象与sql语句
			String sql=" delete from user where id=? ";
			pstm=conn.prepareStatement(sql);
			pstm.setObject(1, id);
			//执行更新或查询
			int r=pstm.executeUpdate();
			//结果处理
			return r>0;
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}finally{
			//关闭连接
			DbUtils.close(pstm);
			DbUtils.close(conn);
		}
	}
//修改数据
	@Override
	public boolean modify(User u) {
		//定义Connection对象
		Connection  conn=null;
		//定义PreparedStatement对象
		PreparedStatement pstm=null;
		try {
			//调用工具类DbUtils与数据库建立连接
			conn=DbUtils.getConn();
			//创建PreparedStatement对象与sql语句
			String sql=" update user set name=?,pwd=? where id=? ";
			pstm=conn.prepareStatement(sql);
			pstm.setObject(1,u.getName());
			pstm.setObject(2,u.getPwd());
			pstm.setObject(3,u.getId());
			//执行更新或查询
			int r=pstm.executeUpdate();
			//结果处理
			return r>0;
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}finally{
			//关闭连接
			DbUtils.close(pstm);
			DbUtils.close(conn);	
		}	
	}
//根据密码和用户名查询数据
	@Override
	public User queryByNamePwd(String UserName,String UserPwd) {
		//定义Connection对象
		Connection conn=null;
		//定义PreparedStatement对象
		PreparedStatement pstm=null;
		//定义ResultSet对象
		ResultSet rs=null;
		try {
			//调用工具类DbUtils与数据库建立连接
			conn=DbUtils.getConn();
			//创建PreparedStatement对象与sql语句
			String sql =" select * from user where name=? and pwd=? ";
			pstm=conn.prepareStatement(sql);
			pstm.setObject(1,UserName);
			pstm.setObject(2,UserPwd);
			//执行更新或查询,存入结果集
			rs=pstm.executeQuery();
			//结果处理 遍历结果集
			User user =null;
			while(rs.next()){
				//使用User实体类,创建User对象
				user=new User();
				int id=rs.getInt(1);
				String name=rs.getString(2);
				String pwd=rs.getString(3);
				//使用set方法存数据到User类
				user.setId(id);
				user.setName(name);
				user.setPwd(pwd);
			}
			return user;
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		}finally{
			//关闭连接
			DbUtils.close(rs);
			DbUtils.close(pstm);
			DbUtils.close(conn);	
		}
	}
//查询所有数据 ,使用List集合存储多条查询的数据
	@Override
	public List<User> queryAll() {
		//定义List集合存储User类每一个对象,每一个对象都是一条数据
		List<User> users=new ArrayList<>();
		//定义Connection对象
		Connection conn=null;
		//定义PreparedStatement对象
		PreparedStatement pstm=null;
		//定义ResultSet对象
		ResultSet rs=null;
		try {
			//调用工具类DbUtils与数据库建立连接
			conn=DbUtils.getConn();
			//创建PreparedStatement对象与sql语句
			String sql=" select * from user ";
			pstm=conn.prepareStatement(sql);
			//执行更新或查询,存入结果集
			rs=pstm.executeQuery();
			//结果处理 遍历结果集
			while(rs.next()){
				使用User实体类,创建User对象
				User user=new User();
				int id=rs.getInt(1);
				String name=rs.getString(2);
				String pwd= rs.getString(3);
				//使用set方法存数据到User类
				user.setId(id);
				user.setName(name);
				user.setPwd(pwd);
				//使用add方法将Uesr类对象user添加到List集合users里
				users.add(user);
			}
			return users;
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		}finally{
			//关闭连接
			DbUtils.close(rs);
			DbUtils.close(pstm);
			DbUtils.close(conn);		
		}	
	}
}
  1. 服务层接口
public interface UserService {
	boolean add(User u);  //添加数据的方法
	boolean del(int id);  //根据id删除数据的方法
	boolean modify(User u);//修改数据的方法
	User queryByNamePwd(String UserName,String UserPwd);//根据密码用户名查询
	List<User> queryAll();//查询所有的数据方法
}

  1. 服务层接口实现类
public class UserServiceImpl  implements UserService{
    //定义UserDao对象  服务层与Dao层的连接
	UserDao user=new UserDaoImpl();
	@Override
	public boolean add(User u) {
		return user.add(u);
	}

	@Override
	public boolean del(int id) {
		return user.del(id);
	}

	@Override
	public boolean modify(User u) {
		return user.modify(u);
	}
	@Override
	public User queryByNamePwd(String UserName, String UserPwd) {
		return user.queryByNamePwd(UserName, UserPwd);
	}

	@Override
	public List<User> queryAll() {
		return user.queryAll();
	}

}
  1. 简单测试
//服务层测试
		User user=new User();
		UserService users=new UserServiceImpl();
		user.setId(9);
		user.setName("wng");
		user.setPwd("1589");
		System.out.println(users.modify(user));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值