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