zoukankan      html  css  js  c++  java
  • JDBC编程之优化

    1、创建 dbconfig.properties

    driver=com.mysql.jdbc.Driver
    dburl=jdbc:mysql://localhost:3306/mytest
    user=root
    password=


    2、创建 ConnectionFactory.java

     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     @Override
    20     public String toString() {
    21         return "User [name=" + name + ", password=" + password + ", id=" + id
    22                 + "]";
    23     }
    24     
    25     
    26     
    27 }


    5、Address.java 继承抽象类IdEntity.java

     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     @Override
    20     public String toString() {
    21         return "Address [address=" + address + ", userid=" + userid + ", id="
    22                 + id + "]";
    23     }
    24     
    25     
    26 }


    6、UserDao.java 定义接口

     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 }


    7、实现UserDao接口,UserDaoImpl.java

     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     @Override
    13     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     @Override
    21     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     @Override
    31     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 }
  • 相关阅读:
    java中整形变量与字节数组的转换
    Oracle中的dual表的用途
    Linux环境变量的配置
    WebService 之Axis2(三)
    WebService 之Axis2(二)
    Axis2: wsdl2java 参数注解
    axis2学习——axis2的安装
    axis2学习——axis2消息处理机制
    axis2学习——客户端的开发
    axis2学习——开发自定义的axis2服务
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/5738610.html
Copyright © 2011-2022 走看看