zoukankan      html  css  js  c++  java
  • JDBC数据连接之增删改查MVC

                                                                  每天叫醒自己的不是闹钟,而是梦想

    conn层

    package conn;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import com.mysql.jdbc.Statement;
    
    
    public class Conn {
    	/*Statement stmt;
    	 * 该对象用于执行静态SQL语句并返回它产生的结果。
    
    默认情况下,只有一个ResultSet对象每Statement对象可以同时打开。因此,如果一个ResultSet对象的阅读是交错的另一个阅读,每个人都必须有不同的Statement对象产生。在Statement接口的所有执行方法隐式关闭的声明,目前ResultSet对象如果打开一个存在。
    简单来说,就是一个结果对应一个Statement
    本次实现增删改查。需要4个返回结果,所以定义4个Statement对象
    */
    	Statement stmt;
    	Statement stmt1;
    	Statement stmt2;
    	Statement stmt3;
    	
    	public Conn()  //本段代码块构造函数,初始化连接数据库
    	{
    		try {
    			Class.forName("com.mysql.jdbc.Driver");//加载jdbc驱动
    			String url = "jdbc:mysql://localhost:3306/test?user=root&password=password&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false";
    			Connection con=DriverManager.getConnection(url);//连接数据库
    			stmt =(Statement) con.createStatement();
    			stmt1 =(Statement) con.createStatement();
    			stmt2 =(Statement) con.createStatement();
    			stmt3 =(Statement) con.createStatement();
    		} catch (ClassNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	}
    	public boolean insert(String sql) //插入。Statement对象调用executeupdate方法执行sql语句。  成功与否返回布尔型。
    	{
    		boolean flag=true;  //flag标识
    		try {
    			stmt.executeUpdate(sql);
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			flag=false;//捕获到异常。执行失败。返回false;
    		}
    		return flag;
    	}
    	public boolean update(String sql)
    	{
    		boolean flag=true;
    		try {
    			stmt1.executeUpdate(sql);
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			flag=false;
    		}
    		return flag;
    	}
    	public boolean delect(String sql)
    	{
    		boolean flag=true;
    		try {
    			stmt2.executeUpdate(sql);
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			flag=false;
    		}
    		return flag;
    	}
    	public ResultSet select(String sql) throws Exception
    	{
    	
    			return stmt3.executeQuery(sql);
    		
    	
    	}
    }
    

      dao层

    package dao;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    
    import com.mysql.jdbc.ResultSetImpl;
    
    import bean.Student;
    import conn.Conn;
    /*本类中拼接sql语句  本类为实现接口方法
     * 用于用户调用
     * 传入conn连接数据库类
     * 节后的实现后缀用impl
     * 
     * */
    public class StudentDao implements IStudentDao {
    	Conn conn=new Conn();
    	@Override
    	public boolean insertStudent(Student student) {
    		// TODO Auto-generated method stub
    		String name=student.getName();
    		int age=student.getAge();
    		int sex=student.getSex();
    		String sql = "INSERT INTO student(`name`,`age`,`sex`) VALUES('"+name+"',"+age+","+sex+");";
    		
    		return conn.insert(sql);
    	}
    
    	@Override
    	public boolean updateStudent(Student student) {
    		int id=student.getId();
    		String name=student.getName();
    		int age=student.getAge();
    		int sex=student.getSex();
    		String sql = "UPDATE student set `name`='"+name+"',age="+age+",sex="+sex+" WHERE id="+id+"";
    	   // String sql = "UPDATE student SET `name`='"+name+"'"+",age="+age+",sex="+sex+" WHERE id="+id;
    		return conn.update(sql);
    	}
    
    	@Override
    	public boolean delectStudent(Student student) {
    		// TODO Auto-generated method stub
    		int id=student.getId();
    		String sql = "DELETE FROM student where id="+id;
    		return conn.delect(sql);
    	}
    
    	@Override
    	public ArrayList<Student> selectStudent() {
    		// TODO Auto-generated method stub
    		String sql="select *from student;";
    		ResultSet set=null;
    		ArrayList<Student> list=new ArrayList<>();
    		try {
    			set=conn.select(sql);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		try {
    			while(set.next())
    			{
    				Student student=new Student();
    				student.setId(set.getInt("id"));
    				student.setName(set.getString("name"));
    				student.setAge(set.getInt("age"));
    				student.setSex(set.getInt("sex"));
    				list.add(student);
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return list;
    	}
    
    	
    }
    

      

    package dao;
    
    import java.util.ArrayList;
    
    import bean.Student;
    
    public interface IStudentDao {
    /*本接口写方法。用于其他类继承调用
     * 使用其他包类是。需要先导入
     * 查询结果返回数组
     * 接口
     * 
     * */
    public boolean insertStudent(Student student);
    public boolean updateStudent(Student student);
    public boolean delectStudent(Student student);
    public ArrayList<Student> selectStudent();
    }
    

      server

    package server;
    
    import java.util.ArrayList;
    
    import bean.Student;
    
    public interface IStudentServer {
    	public boolean insertStudent(Student student);
    	public boolean deleteStudent(Student student);
    	public boolean updateStudent(Student student);
    	public ArrayList<Student> selectAllStudent();
    
    }
    

     

    package serverImpl;
    
    import java.util.ArrayList;
    
    import bean.Student;
    import dao.StudentDao;
    import server.IStudentServer;
    
    public class ServerStudent implements IStudentServer{
    		StudentDao studentDao= new StudentDao();
    
    	@Override
    	public boolean insertStudent(Student student) {
    		// TODO Auto-generated method stub
    		return studentDao.insertStudent(student);
    	}
    
    	@Override
    	public boolean deleteStudent(Student student) {
    		// TODO Auto-generated method stub
    		return studentDao.delectStudent(student);
    	}
    
    	@Override
    	public boolean updateStudent(Student student) {
    		// TODO Auto-generated method stub
    		return studentDao.updateStudent(student);
    	}
    
    	@Override
    	public ArrayList<Student> selectAllStudent() {
    		// TODO Auto-generated method stub
    		return studentDao.selectStudent();
    	}
    
    }
    

      action

    package action;
    
    import java.util.ArrayList;
    
    import bean.Student;
    import serverImpl.ServerStudent;
    
    public class StudentAction {
    ServerStudent serverStudent =new ServerStudent();
    public String insertStudent(Student student)
    {
    	boolean flag=serverStudent.insertStudent(student);
    	if(flag==true)
    		return "插入成功";
    	else
    		return "插入失败";
    }
    public String delectStudent(Student  student)
    {	boolean flag=serverStudent.deleteStudent(student);
    	if(flag==true)
    	return "刪除成功";
    else
    	return "刪除失败";
    	}
    public String updateStudent(Student student)
    {	boolean flag=serverStudent.updateStudent(student);
    if(flag==true)
    	return "修改成功";
    else
    	return "修改失败";
    	}
    public String selectStudent()
    {
    	ArrayList<Student> student=serverStudent.selectAllStudent();
    	String ss = "";
    	for(Student chaoba:student) {
    		ss += "id:"+chaoba.getId();
    		ss += " name:"+chaoba.getName();
    		ss += " age:" + chaoba.getAge();
    		ss += " sex:" + (chaoba.getSex()==1?"男":"女");
    		ss += "
    ";
    	}
    	return ss;
    	}
    }
    

      

    bean 业务实体

    package bean;
    /*Student类。用做业务实体,
     * 进行复制。传递获取
     * 
     * 
     * 
     * 
     * */
    public class Student {
    private int id;
    private String name;
    private int age;
    private int sex;
    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 getAge() {
    	return age;
    }
    public void setAge(int age) {
    	this.age = age;
    }
    public int getSex() {
    	return sex;
    }
    public void setSex(int sex) {
    	this.sex = sex;
    }
    
    }
    

      

     *-------------------------------------------*
    By:暮雪超霸博客:http://www.cnblogs.com/chaoba/
     *-------------------------------------------*

    一万年太久,只争朝夕!
  • 相关阅读:
    数列(codevs 1141)
    Circle(codevs 3134)
    Jam的计数法(codevs 1140)
    水果姐逛水果街Ⅰ(codevs 3304)
    引水入城(codevs 1066)
    Vigenère 密码(luogu 1079)
    铺地毯(luogu 1003)
    SSO之CAS基础及应用视频教程(1)
    Spark高速入门指南(Quick Start Spark)
    python爬虫CSDN文章抓取
  • 原文地址:https://www.cnblogs.com/chaoba/p/6682732.html
Copyright © 2011-2022 走看看