NOTE:之前说过了增加和查询的代码,今天一并补上
sqlyog中写入代码新建数据库
复制代码
- /*在MySQL中创建一个名称为chapter01的数据库,
- 然后在该数据库中创建一个users表,SQL语句如下所示*/
- CREATE DATABASE jdbc;
- USE jdbc;
- CREATE TABLE users(
- id INT PRIMARY KEY AUTO_INCREMENT,
- name VARCHAR(40),
- password VARCHAR(40),
- email VARCHAR(60),
- birthday DATE
- )CHARACTER SET utf8 COLLATE utf8_general_ci;
- /*数据库和表创建成功后,再向users表中插入3条数据,SQL语句如下所示*/
- INSERT INTO users(NAME,PASSWORD,email,birthday)
- VALUES('zs','123456','zs@sina.com','1980-12-04');
- INSERT INTO users(NAME,PASSWORD,email,birthday)
- VALUES('lisi','123456','lisi@sina.com','1981-12-04');
- INSERT INTO users(NAME,PASSWORD,email,birthday)
- VALUES('wangwu','123456','wangwu@sina.com','1979-12-04');
- /*为了查看数据是否添加成功,使用SELECT语句查询users表,SQL语句如下所示*/
复制代码
- package Bean;
- import java.util.Date;
- public class User {
- private int id;
- private String name;
- private String password;
- private String email;
- private Date birthday;
- 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 String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public String getEmail() {
- return email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
- public Date getBirthday() {
- return birthday;
- }
- public void setBirthday(Date birthday) {
- this.birthday = birthday;
- }
- }
复制代码
- package Dao;
- import Bean.User;
- import utils.C3P0Utils;
- import utils.JDBCUtils;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.List;
- public class UserDao {
- // 添加用户的操作
- public boolean insert(User user) {
- Connection conn = null;
- PreparedStatement stmt = null;
- ResultSet rs = null;
- try {
- // 获得数据的连接
- conn = JDBCUtils.getConnection();
- // conn = C3P0Utils.getConnection();
- // 发送SQL语句
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- String birthday = sdf.format(user.getBirthday());
- String sql = " INSERT INTO users(NAME,PASSWORD,email,birthday) VALUES(?,?,?,?)";
- // 获得Statement对象
- stmt = conn.prepareStatement(sql);
- stmt.setString(1, user.getName());
- stmt.setString(2, user.getPassword());
- stmt.setString(3, user.getEmail());
- stmt.setString(4, birthday);
- int num = stmt.executeUpdate();
- if (num > 0) {
- return true;
- }
- return false;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- JDBCUtils.release(rs, stmt, conn);
- }
- return false;
- }
- //查询所有,返回的是多条数据对应的bean对象
- public List<User> getall() {
- List<User> list = new ArrayList<>();//删除集合存储查询到的所有对象
- Connection connection = null;
- PreparedStatement statement = null;
- ResultSet set = null;
- try {
- connection = JDBCUtils.getConnection();//连接数据库
- String sql = "select * from users";//SQL语句
- statement = connection.prepareStatement(sql);//获得preparedStatment对象
- set = statement.executeQuery();//执行SQL语句
- //操作结果集
- while (set.next()) {
- //获得每条记录各个字段的值
- int id = set.getInt("id");
- String name = set.getString("name");
- String password = set.getString("password");
- String email = set.getString("email");
- String birthday = set.getString("birthday");
- //将各个字段的值封装进bean对象
- User user = new User();
- user.setId(id);
- user.setName(name);
- user.setPassword(password);
- user.setEmail(email);
- user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse(birthday));//要把字符串birthday转换成Date
- //将user放入集合
- list.add(user);
- }
- return list;//将集合返回给调用者
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- JDBCUtils.release(set, statement, connection);
- }
- return null;//如果发生异常,返回null
- }
- //查询单个用户-----ID
- public User getByID(int id) {
- Connection connection = null;
- PreparedStatement statement = null;
- ResultSet set = null;
- try {
- connection = JDBCUtils.getConnection();//连接数据库
- String sql = "select * from users where id="+id;//SQL语句
- statement = connection.prepareStatement(sql);//获得preparedStatment对象
- set = statement.executeQuery();//执行SQL语句
- while (set.next()) {
- //获取查询到的该条记录的各个字段的值
- int userid = set.getInt("id");
- String name = set.getString("name");
- String password = set.getString("password");
- String email = set.getString("email");
- String birthday = set.getString("birthday");
- //将各个字段的值封装进bean对象
- User user = new User();
- user.setId(userid);
- user.setName(name);
- user.setPassword(password);
- user.setEmail(email);
- user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse(birthday));//要把字符串birthday转换成Date
- return user;//将用户返回给调用者
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- JDBCUtils.release(set, statement, connection);
- }
- return null;
- }
- //删除
- public boolean delet(int id) {
- Connection conn = null;
- PreparedStatement stmt = null;
- ResultSet rs = null;
- try {
- // 获得数据的连接
- conn = JDBCUtils.getConnection();
- // 书写SQL语句
- String sql="delete from users where id="+id;
- //获得preparedstatment对象
- stmt=conn.prepareStatement(sql);
- //执行sql语句
- int num = stmt.executeUpdate();
- if (num > 0) {
- return true;
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- JDBCUtils.release(rs, stmt, conn);
- }
- return false;
- }
- //修改
- public boolean update(User user){
- Connection connection = null;
- PreparedStatement statement = null;
- try{
- connection=JDBCUtils.getConnection();
- String sql="update users set name=?,password=?,email=?,birthday=? where id=?";
- statement=connection.prepareStatement(sql);
- statement.setString(1,user.getName());
- statement.setString(2,user.getPassword());
- statement.setString(3,user.getEmail());
- statement.setString(4,new SimpleDateFormat("yyyy-MM-dd").format(user.getBirthday()));
- statement.setInt(5,user.getId());
- int num = statement.executeUpdate();
- if (num > 0) {
- return true;
- }
- return false;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- JDBCUtils.release(statement,connection);
- }
- return false;
- }
- }
复制代码
- package utils;
- import java.sql.*;
- public class JDBCUtils{
- //获得数据库连接
- public static Connection getConnection() throws Exception{
- Statement stmt=null;
- ResultSet rs=null;
- Connection conn=null;
- // 1. 注册数据库的驱动
- Class.forName("com.mysql.jdbc.Driver");
- // 2.通过DriverManager获取数据库连接
- String url = "jdbc:mysql://localhost:3306/jdbc";
- String username = "root";
- String password = "root";
- conn = DriverManager.getConnection(url, username,
- password);
- return conn;
- }
- //释放资源
- public static void release(ResultSet rs,Statement statement,Connection conn){
- if(rs!=null){
- try{
- rs.close();
- }catch(SQLException e){
- e.printStackTrace();
- }
- rs=null;
- }
- if(statement!=null){
- try{
- statement.close();
- }catch(SQLException e){
- e.printStackTrace();
- }
- statement=null;
- }
- if(conn!=null){
- try{
- conn.close();
- }catch(SQLException e){
- e.printStackTrace();
- }
- conn=null;
- }
- }
- public static void release(Statement statement,Connection connection){
- if(statement!=null){
- try{
- statement.close();
- }catch(SQLException e){
- e.printStackTrace();
- }
- statement=null;
- }
- if(connection!=null){
- try{
- connection.close();
- }catch(SQLException e){
- e.printStackTrace();
- }
- connection=null;
- }
- }
- }