1、创建 dbconfig.properties
driver=com.mysql.jdbc.Driverdburl=jdbc\:mysql\://localhost\:3306/mytestuser=rootpassword=
1 package com.test.util; 2 3 import java.io.InputStream; 4 import java.sql.Connection; 5 import java.sql.DriverManager; 6 import java.util.Properties; 7 8 public class ConnectionFactory { 9 10 private static String driver;11 private static String dburl;12 private static String user;13 private static String password;14 15 private static final ConnectionFactory factory = new ConnectionFactory();16 17 private Connection conn;18 19 static{20 Properties prop = new Properties();21 try{22 InputStream in = ConnectionFactory.class.getClassLoader()23 .getResourceAsStream("dbconfig.properties");24 prop.load(in);25 }catch(Exception e){26 System.out.println("配置文件读取错误");27 }28 driver = prop.getProperty("driver");29 dburl = prop.getProperty("dburl");30 user = prop.getProperty("user");31 password = prop.getProperty("password");32 33 }34 private ConnectionFactory(){35 36 }37 public static ConnectionFactory getInstance(){38 return factory;39 }40 public Connection makeConnection(){41 try{42 Class.forName(driver);43 conn = DriverManager.getConnection(dburl,user,password);44 }catch(Exception e){45 e.printStackTrace();46 }47 return conn;48 }49 }
3、抽象类 IdEntity.java
1 package com.test.entity; 2 3 public abstract class IdEntity { 4 5 protected int id; 6 public int getId(){ 7 return id; 8 } 9 public void setId(int id){10 this.id = id;11 }12 }
4、User.java 继承抽象类IdEntity.java
1 package com.test.entity; 2 3 public class User extends IdEntity { 4 private String name; 5 private String password; 6 7 public String getName() { 8 return name; 9 }10 public void setName(String name) {11 this.name = name;12 }13 public String getPassword() {14 return password;15 }16 public void setPassword(String password) {17 this.password = password;18 }19 @Override20 public String toString() {21 return "User [name=" + name + ", password=" + password + ", id=" + id22 + "]";23 }24 25 26 27 }
1 package com.test.entity; 2 3 public class Address extends IdEntity{ 4 5 private String address; 6 private int userid; 7 public String getAddress() { 8 return address; 9 }10 public void setAddress(String address) {11 this.address = address;12 }13 public int getUserid() {14 return userid;15 }16 public void setUserid(int userid) {17 this.userid = userid;18 }19 @Override20 public String toString() {21 return "Address [address=" + address + ", userid=" + userid + ", id="22 + id + "]";23 }24 25 26 }
1 package com.test.dao; 2 3 import java.sql.Connection; 4 import java.sql.SQLException; 5 6 import com.test.entity.User; 7 8 public interface UserDao { 9 10 public void save(Connection conn,User user)throws SQLException;11 12 public void update(Connection conn,int id,User user) throws SQLException;13 14 public void delete(Connection conn,User user)throws SQLException;15 16 }
1 package com.test.dao.impl; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.SQLException; 6 7 import com.test.dao.UserDao; 8 import com.test.entity.User; 9 10 public class UserDaoImpl implements UserDao{11 12 @Override13 public void save(Connection conn, User user) throws SQLException {14 PreparedStatement ps = conn.prepareCall("insert into person(name,password) values(?,?)");15 ps.setString(1, user.getName());16 ps.setString(2, user.getPassword());17 ps.execute();18 }19 20 @Override21 public void update(Connection conn, int id, User user) throws SQLException {22 String updateSql ="update person set name= ?,password=? where id =?";23 PreparedStatement ps = conn.prepareStatement(updateSql);24 ps.setString(1, user.getName());25 ps.setString(2, user.getPassword());26 ps.setInt(3, id);27 ps.execute();28 }29 30 @Override31 public void delete(Connection conn, User user) throws SQLException {32 PreparedStatement ps = conn.prepareStatement("delete from uesr where id = ?");33 ps.setInt(1, user.getId());34 ps.execute();35 }36 37 }
8、测试类 UserDaoTest.java
1 package com.test.testclass; 2 3 import java.sql.Connection; 4 import java.sql.SQLException; 5 6 import com.test.dao.UserDao; 7 import com.test.dao.impl.UserDaoImpl; 8 import com.test.entity.User; 9 import com.test.util.ConnectionFactory;10 11 public class UserDaoTest {12 13 public static void main(String[] args) {14 Connection conn = null;15 16 17 try {18 conn = ConnectionFactory.getInstance().makeConnection();19 conn.setAutoCommit(false);20 UserDao userDao = new UserDaoImpl();21 User tom = new User();22 tom.setName("tom");23 tom.setPassword("123456");24 userDao.save(conn, tom);25 conn.commit();26 } catch (SQLException e) {27 try{28 conn.rollback();29 }catch(Exception e2){30 e2.printStackTrace();31 }32 e.printStackTrace();33 }34 35 }36 }