请选择 进入手机版 | 继续访问电脑版

JDBC_CRUD 操作 - 初级

发表于 2016-08-07 20:19 显示全部楼层 20 456

包结构:

blob.png

代码:

package com.langfei._00_.domain;
//数据对象Student
public class Student {
	private Long id;
	private String name;
	private String gender;
	private Integer age;
	private String address;
	private String clzz;
	
	public Student() {
	}
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getClzz() {
		return clzz;
	}
	public void setClzz(String clzz) {
		this.clzz = clzz;
	}
	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", gender=" + gender + ", age=" + age + ", address=" + address
				+ ", clzz=" + clzz + "]";
	}
}
package com.langfei._00_.impl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.langfei._00_.domain.Student;

/**
 * 对student对象的crud操作
 * 
 * @author yexingfei
 */
public class StudentCRUD {
	// 1:添加学生对象
	public void add(Student student) {
		// 连接数据库
		String user = "root";
		String password = "admin";
		String url = "jdbc:mysql:///6class";

		Connection connection = null;
		Statement statement = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			connection = DriverManager.getConnection(url, user, password);
			statement = connection.createStatement();
			// sql 拼接:
			StringBuilder sql = new StringBuilder(100);
			sql.append("INSERT INTO t_student( name, age, gender, address, clzz) values( ");
			sql.append("'" + student.getName() + "', ");
			sql.append(student.getAge() + ",");
			sql.append("'" + student.getGender() + "', ");
			sql.append("'" + student.getAddress() + "', ");
			sql.append("'" + student.getClzz() + "' )");
			// 执行sql
			statement.executeUpdate(sql.toString());
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 资源释放
			try {
				if (statement != null) {
					statement.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				if (connection != null) {
					connection.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	// 2:删除学生对象
	public int delete(Long id) {

		// 连接数据库
		String user = "root";
		String password = "admin";
		String url = "jdbc:mysql:///6class";

		Connection connection = null;
		Statement statement = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			connection = DriverManager.getConnection(url, user, password);
			statement = connection.createStatement();
			// sql 拼接:
			String sql = "DELETE FROM t_student WHERE id = " + id;
			// 执行sql
			return statement.executeUpdate(sql);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 资源释放
			try {
				if (statement != null) {
					statement.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				if (connection != null) {
					connection.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		return -1;
	}

	// 3:更新学生对象
	public int update(Student student) {
		// 连接数据库
		String user = "root";
		String password = "admin";
		String url = "jdbc:mysql:///6class";

		Connection connection = null;
		Statement statement = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			connection = DriverManager.getConnection(url, user, password);
			statement = connection.createStatement();
			// sql 拼接:
			StringBuilder sql = new StringBuilder(100);
			sql.append("UPDATE  t_student SET ");
			sql.append("name='" + student.getName() + "', ");
			sql.append("age=" + student.getAge() + ",");
			sql.append("gender='" + student.getGender() + "', ");
			sql.append("address='" + student.getAddress() + "', ");
			sql.append("clzz='" + student.getClzz() + "' ");
			sql.append(" WHERE id=" + student.getId());
			// 执行sql
			statement.executeUpdate(sql.toString());
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 资源释放
			try {
				if (statement != null) {
					statement.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				if (connection != null) {
					connection.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return -1;
	}

	// 4:查单个学生
	public Student find(Long id) {
		// 连接数据库
		String user = "root";
		String password = "admin";
		String url = "jdbc:mysql:///6class";

		Connection connection = null;
		Statement statement = null;
		ResultSet resultSet = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			connection = DriverManager.getConnection(url, user, password);
			statement = connection.createStatement();
			// sql 拼接:
			String sql = "SELECT id, name, gender, age, address, clzz FROM t_student WHERE id = " + id;
			// 执行sql
			resultSet = statement.executeQuery(sql);
			if (resultSet.next()) {
				Student student = new Student();
				student.setAddress(resultSet.getString("address"));
				student.setAge(resultSet.getInt("age"));
				student.setName(resultSet.getString("name"));
				student.setClzz(resultSet.getString("clzz"));
				student.setGender(resultSet.getString("gender"));
				student.setId(resultSet.getLong("id"));
				return student;
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 资源释放
			try {
				if (statement != null) {
					statement.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				if (connection != null) {
					connection.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		return null;
	}

	// 5:查所有学生
	public List<Student> findAll() {
		// 连接数据库
		String user = "root";
		String password = "admin";
		String url = "jdbc:mysql:///6class";

		Connection connection = null;
		Statement statement = null;
		ResultSet resultSet = null;
		List<Student> list = new ArrayList<>();
		Student student = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			connection = DriverManager.getConnection(url, user, password);
			statement = connection.createStatement();
			// sql 拼接:
			String sql = "SELECT id, name, gender, age, address, clzz FROM t_student ";
			// 执行sql
			resultSet = statement.executeQuery(sql);

			while (resultSet.next()) {
				student = new Student();
				student.setAddress(resultSet.getString("address"));
				student.setAge(resultSet.getInt("age"));
				student.setName(resultSet.getString("name"));
				student.setClzz(resultSet.getString("clzz"));
				student.setGender(resultSet.getString("gender"));
				student.setId(resultSet.getLong("id"));
				list.add(student);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 资源释放
			try {
				if (statement != null) {
					statement.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				if (connection != null) {
					connection.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		return list;
	}
}
package com.langfei._00_.test;

import java.util.List;

import org.junit.Test;

import com.langfei._00_.domain.Student;
import com.langfei._00_.impl.StudentCRUD;

/**
 * crud 测试
 * @author yexingfei
 */
public class StudentCRUDTest {
	private StudentCRUD dao = new StudentCRUD();
	@Test
	public void testAdd() throws Exception {
		Student student = new Student();
		student.setAddress("广东");
		student.setAge(10);
		student.setClzz("大神1班");
		student.setGender("仔");
		student.setName("飞");
		dao.add(student);
	}
	@Test
	public void testDelete() throws Exception {
		Long id = 2L;
		dao.delete(id);
	}
	@Test
	public void testUpdate() throws Exception {
		Student student = new Student();
		student.setId(3L);
		student.setAddress("广东1");
		student.setAge(12);
		student.setClzz("大神2班");
		student.setGender("妞");
		student.setName("大飞");
		dao.update(student);
	}
	@Test
	public void testFind() throws Exception{
		Student student = dao.find(3L);
		System.out.println(student);
	}
	@Test
	public void testFindAll() throws Exception{
		List<Student> list = dao.findAll();
		for(Student student : list){
			System.out.println(student);
		}
	
	}
}

总结:

00、初级

存在问题:

1> 每个方法重复连接数据库,关闭数据库资源,此处重复可抽取

2> 方法中使用Statement,拼接sql麻烦,可使用更安全的PrepareStatement

3> url username password driver 存在硬编码


回复 使用道具
举报
buyingplane.com

发表于 2017-11-24 16:05 显示全部楼层

公司主要生产销售产品有:循环水处理设备系列,纯水中水设备,污水处理工程,给排水处理设备系列四大类。 循环水处理设备系列:动态离子群水处理机组、全自动PCC水处理器、冷凝器在线清洗装置、智能加药装置、自动反洗过滤器、自洁式排污过滤器、电子水处理器、综合物化水处理器,静电子水处理仪、石英砂过滤器、旁流水处理设备、水箱自洁消毒器、高频电子水处理器、全自动自清洗过滤器、反冲洗排污过滤器、纤维球过滤器、多介质过滤器等,泳池水处理设备,地埋式一体化过滤装,地埋式污水装置等。 纯水中水类:全自动净水器系列、反渗透净化系列、软水设备、中水回用设备、紫外线杀菌器、水箱工程等多项设备。 污水类:污水处理设计方案、全自动厕所废水处理排放装置、地埋式污水处理装置,污水处理设备及耗材、工程安装等。公司始终坚持以“诚实守信、品质为先、服务真诚”的经营方针,以解决系统水质问题为目标,多年来在水处理工程领域、水处理设备领域、水处理材料领域嬴得了国内外广大用户的认可和赞誉。 给排水处理设备系列:成品玻璃钢化粪池,全自动油水分离器,污水提升排放装置等。 网址:www.gzdq.pro 广州德清环保科技有限公司前身于广州德通水处理设备有限公司,是一家专业从事水处理研究、开发、生产销售应用为一体的高新技术企业。 德清环保公司拥有专业的水处理研发、机械设计、电气开发、工程管理的优秀技术人才,经验丰富的技术管理及专家顾问团队,强大的生产能力和完善的售前、售中、售后全程服务网络。凭借雄厚的技术实力、完善的管理和高素质的团队,在环保水处理行业中具有技术领先的地位。 公司主要生产销售产品有:循环水处理设备系列,纯水中水设备,污水处理工程,给排水处理设备系列四大类。网址:www.gzdq.pro
回复 支持 反对 使用道具
举报
小受哥哥

发表于 2017-03-18 14:03 显示全部楼层

回复 支持 反对 使用道具
举报
望断雁南飞

发表于 2017-03-08 09:10 显示全部楼层

活跃活跃论坛气氛~求楼主加好友

回复 支持 反对 使用道具
举报
随手拾起

发表于 2017-03-03 16:57 显示全部楼层

回复 支持 反对 使用道具
举报
卷毛维安

发表于 2017-02-28 13:02 显示全部楼层

每一个成功者都有一个开始。成功的路,始于回复。

回复 支持 反对 使用道具
举报
佳木繁玥

发表于 2017-02-23 12:45 显示全部楼层

回复 支持 反对 使用道具
举报
腐女大作战

发表于 2017-02-18 11:54 显示全部楼层

回复 支持 反对 使用道具
举报
哥哥在哪儿

发表于 2017-02-18 10:16 显示全部楼层

回复 支持 反对 使用道具
举报
我爱大菠萝

发表于 2017-02-18 05:58 显示全部楼层

回复 支持 反对 使用道具
举报
123下一页

发表新文章
叶星飞

小码哥骨干成员

0

学分

958

学币

1049

积分

小码哥骨干成员

Rank: 6Rank: 6

积分
1049
Ta的主页 发消息
精华帖排行榜

精彩推荐

  • 关注小码哥教育