JAVA JDBC DAO模式实现与mysql交互

1.文件存放结构:
在这里插入图片描述2.具体代码:
1)接口类:

package com.jabcit.dao;

public interface UserDao {
	void findAll();
	void login(String username,String psword);
	void addInfo(String username,String psword);
	void deleteInfo(String username);
	void updatePassword(String username,String psword);
}

2)实现接口类的方法:

package com.jadbcit.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
//import java.sql.SQLException;
import java.sql.Statement;

import com.jabcit.dao.UserDao;
import com.jdbcit.util.Close;

public class UserDaoImpl implements UserDao{
	
	@Override
	public void findAll() {
			Connection conn = null;
			Statement st = null;
			ResultSet rs = null;			
		try {
			//System.out.println("begin.....");
			conn = Close.getConn();
			//System.out.println("after.....");
			st = conn.createStatement();
			String sql = "select * from user";
			rs = st.executeQuery(sql);			
			while(rs.next()){
				int no = rs.getInt("id");
				String name = rs.getString("username");
				String passward = rs.getString("passward");
				System.out.println(no+"\t\t"+name+"\t\t"+passward);
				//String no = rs.getString("No");
				//int no = rs.getInt("No");
				//String name = rs.getString("Name");
				//String sex = rs.getString("Sex");
				//System.out.println(no+"\t\t"+name+"\t\t"+sex);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			Close.release(rs, st, conn);
		}		
	}

	@Override
	public void login(String username, String psword) {
			Connection conn = null;
			//Statement st = null;
			PreparedStatement ps = null;
			ResultSet rs = null;			
		try {
			conn = Close.getConn();
			//用Statement 会出现sql注入,改用PreparedStatement
			//st = conn.createStatement();
			//String sql = "select * from user where username='"+username+"' and passward='"+psword+"'";
			//System.out.println(sql);
			//rs = st.executeQuery(sql);
			String sql = "select * from user where username=? and passward=?";
			ps = conn.prepareStatement(sql);
			ps.setString(1, username);
			ps.setString(2, psword);
			rs = ps.executeQuery();
			if(rs.next()){
				String uname = rs.getString("username");
				String pd = rs.getString("passward");
				System.out.println(uname+"="+pd);
				System.out.println("登录成功!");			
			}else{
				System.out.println("用户名或密码不存在!");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			Close.release(rs, ps, conn);
		}
			
		}

	@Override
	public void addInfo(String username, String psword) {
		Connection conn = null;
		PreparedStatement ps = null;
		//ResultSet rs = null;		
		try {
			String sql="insert into user values(null,?,?)";
			conn = Close.getConn();
			ps = conn.prepareStatement(sql);
			ps.setString(1, username);
			ps.setString(2, psword);
			int rs = ps.executeUpdate();
			if(rs>0){
				//String uname = rs.getString("username");
				//String pd = rs.getString("passward");
				//System.out.println(uname+"="+pd);
				System.out.println("添加成功!");			
			}else{
				System.out.println("添加失败!");
			}
		} catch (Exception e) {			
			e.printStackTrace();
		}finally{
			Close.release(ps, conn);
		}		
	}
	
	@Override
	public void deleteInfo(String username) {
		Connection conn = null;
		PreparedStatement ps = null;
		//ResultSet rs = null;		
		try {
			String sql="delete from user where username=?";
			conn = Close.getConn();
			ps = conn.prepareStatement(sql);
			ps.setString(1, username);
			int rs = ps.executeUpdate();
			if(rs>0){
				System.out.println("删除成功!");			
			}else{
				System.out.println("删除失败!");
			}
		} catch (Exception e) {			
			e.printStackTrace();
		}finally{
			Close.release(ps, conn);
		}		
	}
	
	@Override
	public void updatePassword(String username, String psword) {
		Connection conn = null;
		PreparedStatement ps = null;
		//ResultSet rs = null;		
		try {
			String sql="update user set passward=? where username=?";
			conn = Close.getConn();
			ps = conn.prepareStatement(sql);
			ps.setString(1, psword);
			ps.setString(2, username);
			int rs = ps.executeUpdate();
			if(rs>0){
				System.out.println("密码修改成功!");			
			}else{
				System.out.println("密码修改失败!");
			}
		} catch (Exception e) {			
			e.printStackTrace();
		}finally{
			Close.release(ps, conn);
		}				
	}			
}
	

3)测试方法:

package com.jdbcit.test;

import org.junit.Test;

import com.jabcit.dao.UserDao;
import com.jadbcit.dao.impl.UserDaoImpl;

public class TestUserDaoImpl {
	
	@Test
	public void testfindAll(){
		UserDao dao = new UserDaoImpl();
		dao.findAll();
	}
	
	@Test
	public void testlogin(){
		UserDao dao = new UserDaoImpl();
		dao.login("wang123","zhang818");
	}
	
	@Test
	public void testaddInfo(){
		UserDao dao = new UserDaoImpl();
		dao.addInfo("hazuka","199299se");
	}
	
	
	@Test
	public void testdeleteInfo(){
		UserDao dao = new UserDaoImpl();
		dao.deleteInfo("m");
	}
	
	@Test
	public void testupdatePassword(){
		UserDao dao = new UserDaoImpl();
		dao.updatePassword("marara","mara333");
	}
}

4)工具类

package com.jdbcit.util;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class Close {
	static String driverClass = null;
	static String url = null;
	static String username = null;
	static String password = null;
	static{
		try {
			Properties pt = new Properties();
			InputStream is = new FileInputStream("jdbc.properties");
			//InputStream is = Close.class.getClassLoader().getResourceAsStream("jdbc.properties");
			pt.load(is);
			driverClass = pt.getProperty("driverClass");
			url = pt.getProperty("url");
			username = pt.getProperty("username");
			password = pt.getProperty("password");
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	//1.��ȡ���Ӷ���
	
	public static Connection getConn(){		
		Connection conn = null;
		try {
			//Class.forName(driverClass);
			 conn = DriverManager.getConnection(url,username,password);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		 return conn;		
	}
	
	public static void release(ResultSet rs,Statement st,Connection conn){
		closeRs(rs);
		closeSt(st);
		closeConn(conn);
	}
	
	public static void release(Statement st,Connection conn){
		closeSt(st);
		closeConn(conn);
	}
	
	private static void closeRs(ResultSet rs){
		try {
			if(rs != null){
				rs.close();
			}							
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			rs =null;
		}
		
	}
	
	private static void closeSt(Statement st){
		try {
			if(st != null){
				st.close();
			}							
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			st = null;
		}
		
	}
	
	private static void closeConn(Connection conn){
		try {
			if(conn != null){
				conn.close();
			}							
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			conn = null;
		}
		
	}
}

5)Properties配置文件


driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost/dataforjava
username=root
password=mysql

6)MYSQL
在这里插入图片描述

发布了55 篇原创文章 · 获赞 0 · 访问量 2068

猜你喜欢

转载自blog.csdn.net/KathyLJQ/article/details/104102333
今日推荐