关于jdbc-util的封装

原创 2016年06月02日 10:54:32

-、jdbc的封装应该分为两层:

1.dao层[此层封装的是对数据库的操作 例如:增删改差 ]

2.domain层[这是封装的数据库的对象,在传递数据的时候 一般都是传递对象]

=、dao层

1.在dao层里面我分为了两个文件 第一个:JdbcDao.java 第二个:JdbcUtil.java 从名字 相信也能知道是用来干嘛的了....


三、JdbcDao.java[这个类封装的全是静态方法 对数据库的增删改差 全部封装在里面]

package com.util.dao;//包名最好是规范命名

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

import com.util.domain.Users;


public class JdbcDao {

<span style="white-space:pre">	</span>//对数据库的数据进行增加操作 参数传users也就是刚才提到的domain里面的对象 对应数据库中的表 也叫users
	public static void adduser(Users users) throws Exception{
		Connection conn = JdbcUtil.getconn();
		String sql = "insert into users(username,password,email,hobby,address,brithday,gender) values(?,?,?,?,?,?,?)";
		PreparedStatement psm = null;
		psm = conn.prepareStatement(sql);		
		psm.setString(1, users.getUsername());
		psm.setString(2, users.getPassword());
		psm.setString(3, users.getEmail());
		psm.setString(4, users.getHobby());
		psm.setString(5, users.getAdderss());
		psm.setDate(6, new java.sql.Date( users.getBrithday().getTime()));
		psm.setString(7, users.getGender());
		psm.executeUpdate();
	}
	
	//这里是写登录的时候 用来判断用户名和密码
	public static boolean check(String username, String password){
		Users user = null;
		try {
			List<Users> list = selectuser();
			Iterator<Users> it = list.iterator();
			while(it.hasNext()){
				user = it.next();
				if(username.equals(user.getUsername()) && password.equals(user.getPassword())){
					return true;
				}
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}
	
<span style="white-space:pre">	</span>//查询用户 判断前台输入的用户名和密码是否与数据库中存储的用户名和密码一致
	public static List<Users> selectuser() throws SQLException{
		Connection conn = JdbcUtil.getconn();
		 Statement sta = null;
		 Users user = null;
		 ResultSet rs = null;
		 List<Users> list = new ArrayList<Users>();
			sta = conn.createStatement();		
		
		String sql = "select username,password from users";
			rs = sta.executeQuery(sql);
			while(rs.next()){
				user=new Users(rs.getString("username"),rs.getString("password"));
				list.add(user);
			}
			conn.close();
			return list;
		}
		
}

四:JdbcUtil.java[封装连接数据库  关闭数据库]

package com.util.dao;

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

public class JdbcUtil {
	private static String url;
	private static String username;
	private static String password;
	static{
			String driver = "com.mysql.jdbc.Driver"; 
			 url = "jdbc:mysql://localhost:3306/15java1";
			 username ="root";
			 password ="root";
			 try {
				Class.forName(driver);
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
		
	}
	//链接数据库
	public static Connection getconn() throws SQLException{
		
			return DriverManager.getConnection(url,username,password);
	}
	//关闭数据库连接 从后往前关闭
	public static void closeAll(Connection conn,Statement st,ResultSet rs){
		if(rs != null){
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		if(st != null){
			try {
				st.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		if(conn != null){
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

五:domain层

对应数据库中的表也叫users表,这里的属性和数据库中的字段是对应的

package com.util.domain;

import java.util.Date;


public class Users {
	private String username;
	private  String password;
	private String email;
	private String hobby;
	private String adderss;
	private Date  brithday;
	private String gender;
	
	public Users(String username, String password) {
		super();
		this.username = username;
		this.password = password;
	}
	public Users() {
		// TODO Auto-generated constructor stub
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	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 String getHobby() {
		return hobby;
	}
	public void setHobby(String hobby) {
		this.hobby = hobby;
	}
	public String getAdderss() {
		return adderss;
	}
	public void setAdderss(String adderss) {
		this.adderss = adderss;
	}
	
	public Date getBrithday() {
		return brithday;
	}
	public void setBrithday(Date brithday) {
		this.brithday = brithday;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	
	
	

	
	
}

	

整个jdbc的简单连接和操作基本就封装完毕 如果想要对数据库有更多的操作就直接在dao层里面的javadao.java 自定义 然后调用使用就行啦!

相关文章推荐

对jdbc操作工具类JdbcUtil的简单封装与应用

一、jdbcUtil类 package com.test.util; import java.io.InputStream; import java.sql.Connection; import ...

JDBC util class

  • 2016年10月21日 16:17
  • 33KB
  • 下载

jdbc一些工具类util.一

jdbc的一些工具类的使用-第一篇 ----建立连接和关闭 jdbc在使用过程中有大量的重复代码,写起来很费劲,那么我们怎么可以更省力气呢,我们可以把一些代码封装起来,做一个工具类,也可以使用别人...
  • tom9238
  • tom9238
  • 2016年04月17日 15:42
  • 1188

OkHttp Util封装~线上在用。

  • 2017年10月30日 11:47
  • 19.21MB
  • 下载

Jackson JSON框架的Util化封装

  • 2012年12月04日 20:38
  • 1.41MB
  • 下载

Android Util工具类的封装

摘要本文总结了过往项目和一些资料上的Android 工具类的封装,既当做是总结,也作收集收藏用。感谢网络上诸方资料。SharedPreferences工具类:SPUtil.javapublic cla...

封装好的cookie_util.js

  • 2017年08月17日 13:12
  • 2KB
  • 下载

百度地图Util 简单的封装百度地图

之前做项目,地理位置选择界面用到百度地图,当时全部都写在了Activity 导致整个Activity代码看起来特别乱  于是决定对百度地图这块做提取 好了废话不多说 直接上代码  有不足之处请指教 ...

java:java.util.Properties的便利性封装

java.util.Properties是个常用的类,主要用于保存参数,从文件中加载配置参数,为了更方便使用,可以对它做进一步的封装。 下是面封装后的类Configuration,增加了以下方法: ...
  • 10km
  • 10km
  • 2016年08月04日 13:42
  • 414

JDBC封装类

  • 2017年10月17日 20:12
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于jdbc-util的封装
举报原因:
原因补充:

(最多只允许输入30个字)