实现数据库和java代码的交互。

数据池C3P0、数据库mysql和DbUtils框架的联合运用

准备工作

需要准备好c3p0的数据池jar包、C3P0-config.xml文件、mysql数据库 jar包和最重要的DbUtils框架jar包并在mysql数据库中创建一个student的数据表(如图所示)。
在这里插入图片描述

配置文件

1.在项目里创建一个lib问价夹把上述三个jar放进去并(单击鼠标右键)buildpath产生如下图所示的效果。
在这里插入图片描述这时我们的jar包就可以使用了。
2、比我们c3p0.xml配置文件修改相关的路径和数据库名称(如同所示)
在这里插入图片描述

运用代码把数据库中数据进行增、删、改、查。

准备好如上的工作我们就可以通过java代码对数据表进行增删查改操作了
1、创建一个学生类javabean

下面展示一些 内联代码片

下面展示一些 内联代码片

//javabean
public class Student {
    
    
	private int id;
	private String name;
	private int password;
	private String city;
	public Student() {
    
    
		super();
		// TODO Auto-generated constructor stub
	}
	public Student(int id, String name, int password, String city) {
    
    
		super();
		this.id = id;
		this.name = name;
		this.password = password;
		this.city = city;
	}
	public int getId() {
    
    
		return id;
	}
	public void setId(int id) {
    
    
		this.id = id;
	}
	public String getName() {
    
    
		return name;
	}
	public void setName(String name) {
    
    
		this.name = name;
	}
	public int getPassword() {
    
    
		return password;
	}
	public void setPassword(int password) {
    
    
		this.password = password;
	}
	public String getCity() {
    
    
		return city;
	}
	public void setCity(String city) {
    
    
		this.city = city;
	}
	@Override
	public String toString() {
    
    
		return "Studnt [id=" + id + ", name=" + name + ", password=" + password + ", city=" + city + "]";
	}

2、加载数据池驱动创建连接

下面展示一些 内联代码片

private static DataSource dataSource = new ComboPooledDataSource();

	// 创建连接
	public static DataSource getDataSource() throws Exception {
    
    
		return dataSource;
	}
	public static Connection getConnction() {
    
    
		try {
    
    
			return dataSource.getConnection();
		} catch (SQLException e) {
    
    
			throw new RuntimeException("连接失败");	
		}
	}
	public static void release(Connection connection,Statement statement,ResultSet resultSet) {
    
    
		if (connection!=null) {
    
    
			try {
    
    
				connection.close();
			} catch (SQLException e) {
    
    
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if (statement!=null) {
    
    
			try {
    
    
				statement.close();
			} catch (SQLException e) {
    
    
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if (resultSet!=null) {
    
    
			try {
    
    
				resultSet.close();
			} catch (SQLException e) {
    
    
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

3.对数据进行增删改查操作

下面展示一些 内联代码片

// 查找一个学生
	public void select() throws Exception {
    
    
		QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
		// 编写sql语句
		String sql = "select * from student where name = ?";
		Object params[] = {
    
    "sws"};
		BeanHandler<Student> beanHandler = new BeanHandler<Student>(Student.class);
		//执行sql语句
		Student student = queryRunner.query(sql,beanHandler ,params);
		System.out.println(student);
	}
	
	//查询全部学生
	public void selectAll() throws Exception {
    
    
		QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
		//编写SQL语句
		String sql = "select * from student";
		BeanListHandler<Student> beanListHandler = new BeanListHandler<Student>(Student.class);
		//执行sql语句
		List<Student> student = queryRunner.query(sql, beanListHandler);
		for(Student s:student) {
    
    
			System.out.println(s);
		}
	}
	//增加学生
	public void update() throws Exception {
    
    
		QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
		//编写sql语句
		String sql = "insert into student(id,name,password,city) values(?,?,?,?)";
		Object parmas[] = {
    
    5,"cz",2222,"曲靖"};
		//执行语句
		int update = queryRunner.update(sql, parmas);
		if (update>0) {
    
    
			System.out.println("添加成功");
		}else {
    
    
			System.out.println("添加失败");
		}
	}
	//删除学生
	public void delete() throws Exception {
    
    
		QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
		//编写sql语句
		String sql = "delete from student where name =?";
		Object parmas[] = {
    
    "cz"};
		//执行语句
		int update = queryRunner.update(sql, parmas);
		if (update>0) {
    
    
			System.out.println("删除成功");
		}else {
    
    
			System.out.println("删除失败");
		}
	}
	//修改学生
	public void insert() throws Exception {
    
    
		QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource());
		//编写sql语句
		String sql = "update student set password=? where name=? ";
		Object parmas[] = {
    
    9621,"lm"};
		//执行sql语句
		int update = queryRunner.update(sql, parmas);
		if (update>0) {
    
    
			System.out.println("修改成功");
		}else {
    
    
			System.out.println("修改失败");
		}
	}

4.最后通过一个Test类调用被封装好的增删改查方法

下面展示一些 内联代码片

public static void main(String[] args) {
    
    
		StudentDao dao = new StudentDao();
		try {
    
    
//			查询一个学生
//			dao.select();

//			查询全部学生
//			dao.selectAll();

//			修改学生
//			dao.update();

//			删除学生
//			dao.delete();

//			插入学生
			dao.insert();
		} catch (Exception e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

总结

在进行数据交互的过程中需要注意,数据池文件的配置和路径,其次是相关的jar包的准备工作。如果有不懂的小伙伴可以私信我。

猜你喜欢

转载自blog.csdn.net/fdbshsshg/article/details/115362519
今日推荐