𝓝𝓮𝓶𝓸&博客

【Java】操作数据库

工具: eclipse
    MySQL
    Navicat for MySQL
    MySQL 连接驱动:mysql-connector-java-5.0.4-bin.jar

SQL 代码

CREATE TABLE user
(
	id			VARCHAR(255),
	name		  VARCHAR(255),
	birth		 VARCHAR(255),
	gender		VARCHAR(255),
	favorite	  VARCHAR(255)
);

Java 代码

package model.vo;

public class Student {
	private String id;
	private String name;
	private String birth;
	private String gender;
	private String favorite;
	
	public Student(String id, String name, String birth, String gender,
			String favorite) {
		super();
		this.id = id;
		this.name = name;
		this.birth = birth;
		this.gender = gender;
		this.favorite = favorite;
	}
	public Student() {
		super();
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getBirth() {
		return birth;
	}
	public void setBirth(String birth) {
		this.birth = birth;
	}
	public String getFavorite() {
		return favorite;
	}
	public void setFavorite(String favorite) {
		this.favorite = favorite;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
}

Java 连接

所需的jar包下载

百度网盘 提取码: 68pv

使用方法:
  1. 在工程目录中创建lib文件夹,将下载好的JDBC(jar包)放到该文件夹下。
  2. 右键工程名,选择 Buiding Path | Configure Buiding Path ,在java build path中的Libraries分页中选择Add JARs...,选择刚才添加的JDBC(jar包)。

数据库连接

package tools;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DbTools {

	public Connection con;

	public Connection getCon() throws Exception {

		// 1.加载驱动(按照驱动类的名字《完整名字:包名.类名》把该类加载到内存中)
		Class.forName("com.mysql.jdbc.Driver");
		// 2.建立连接
		String url = "jdbc:mysql://localhost:3306/work?useUnicode=true&characterEncoding=utf-8";
		String dbUser = "root";
		String dbPassword = "mysqladmin";
		con = DriverManager.getConnection(url, dbUser, dbPassword);
		System.out.println("success");
		return con;
	}
	
	public void close() throws Exception{
		if(con!=null)
			con.close();
	}

	
}

	public void add(String id, String name, String gender, String birth, String favorite) throws Exception
	{
		DbTools db = new DbTools();
		Connection con = db.getCon();
		// 创建语句
		String sql = "insert into tstudent (id,name,gender,birth,favorite) values (?,?,?,?,?) ";
		PreparedStatement pst = con.prepareStatement(sql);
		pst.setString(1, id);
		pst.setString(2, name);
		pst.setString(3, gender);
		pst.setString(4, birth);
		pst.setString(5, favorite);
		pst.executeUpdate();
	}

	public void delete(String id) throws Exception{
		DbTools db=new DbTools();
		Connection con=db.getCon();
		// 3.创建语句
		String sql = " delete from tstudent where id=? ";
		PreparedStatement pst = con.prepareStatement(sql);
		pst.setString(1, id);
		pst.executeUpdate();
		pst.close();
		db.close();
	}

	public void updateStudent(String id, String name, String gender, String birth, String favorite) throws Exception
	{
		DbTools db = new DbTools();
		Connection con = db.getCon();
		// 创建语句
		String sql = "update tstudent set ";
		if(name!=null && name.length()>0)
			sql=sql+" and name = ?";
		if(gender!=null && gender.length()>0)
			sql=sql+" and gender=?";
		if(birth!=null && birth.length()>0)
			sql+= " and birth=?";
		if(birth!=null && favorite.length()>0)
			sql+= " and favorite=?";
		sql+=" where id='?' ";
		
		System.out.println(sql);
		
		PreparedStatement pst = con.prepareStatement(sql);
		// 4.执行语句(语句中如果有参数,则需要先对参数赋值)
		ArrayList<String> params=new ArrayList<String>();
		if(id!=null && id.length()>0)
			params.add(id);
		if(name!=null && name.length()>0)
			params.add(name);
		if(gender!=null && gender.length()>0)
			params.add(gender);
		for(int i=0;i<params.size();i++){
			pst.setString(i+1, params.get(i));
		}
		
		pst.executeUpdate();
		pst.close();
		db.close();
	}

	// 按条件查询满足条件的学生数据
	/*
	 * 参数:查询条件 返回:查询结果(若干个,使用集合类型<>)
	 */
	public ArrayList<Student> query(String id, String name, String gender) throws Exception {
		ArrayList<Student> result = new ArrayList<Student>();
	
		DbTools db=new DbTools();
		Connection con=db.getCon();
		// 3.创建语句
		String sql = " select * from tstudent where 1=1 ";
		if(id!=null && id.length()>0)
			sql=sql+" and id=? ";
		if(name!=null && name.length()>0)
			sql=sql+" and name = ?";
		if(gender!=null && gender.length()>0)
			sql=sql+" and gender=?";
		System.out.println(sql);
		
		PreparedStatement pst = con.prepareStatement(sql);
		// 4.执行语句(语句中如果有参数,则需要先对参数赋值)
		ArrayList<String> params=new ArrayList<String>();
		if(id!=null && id.length()>0)
			params.add(id);
		if(name!=null && name.length()>0)
			params.add(name);
		if(gender!=null && gender.length()>0)
			params.add(gender);
		for(int i=0;i<params.size();i++){
			pst.setString(i+1, params.get(i));
		}
		
		
		ResultSet rs = pst.executeQuery();	//执行查询
		while(rs.next()){
			Student student=new Student();
			student.setId(rs.getString("id"));
			student.setName(rs.getString("name"));
			student.setGender(rs.getString("gender"));
			student.setBirth(rs.getString("birth"));
			student.setFavorite(rs.getString("favorite"));
			result.add(student);
		}
		
		rs.close();
		pst.close();
		db.close();
		return result;

	}

提示

可保存这此Java项目,下次连接可直接导入,只需修改部分信息。

posted @ 2020-03-13 14:37  Nemo&  阅读(297)  评论(0编辑  收藏  举报