1、jw08数据库连接数据库连接一、 准备数据库1、 安装数据库服务器2、 安装数据库服务器客户端3、 数据库设计4、 生成sql脚本5、 在服务器上执行sql脚本,构建数据Schame二、 准备Mysql编程客户端把mysql-connector-java-5.1.12-bin.jar放于jre/lib/ext中,当jre启动时,同时mysql的客户端。三、 Java Web的数据库连接方式、 WEB-INF/web.xml DB Connection jdbc/teaching javax.sql.DataSource Container package dweap.teaching.dao;
2、public interface IDAO package dweap.teaching.dao;import java.sql.Connection;import javax.naming.Context;import javax.naming.InitialContext;import javax.sql.DataSource;public class MysqlDao implements IDAO private static Connection conn=null; public static void openConnection() try if(conn=null) /引入W
3、eb资源 Context initCtx = new InitialContext(); /通过资源建立数据空间 DataSource ds = (DataSource)initCtx.lookup(java:comp/env/jdbc/teaching); /获得数据库连接 conn = ds.getConnection(); catch(Exception e) e.printStackTrace(); public synchronized static Connection getConnection() Connection temp=null; if(conn!=null) tem
4、p=conn; conn=null; System.out.println(= + temp); return temp; else return null; public synchronized static void releaseConnection(Connection con) conn=con; public static void closeConn() try conn.close(); catch(Exception e) e.printStackTrace(); 四、 数据库连接池package dweap.teaching.dao;public interface ID
5、AO package dweap.teaching.dao;import java.sql.Connection;import javax.naming.Context;import javax.naming.InitialContext;import javax.sql.DataSource;public class MysqlDao implements IDAO private static Connection conn=null; public static void openConnection() try if(conn=null) /引入Web资源 Context initCt
6、x = new InitialContext(); /通过资源建立数据空间 DataSource ds = (DataSource)initCtx.lookup(java:comp/env/jdbc/teaching); /获得数据库连接 conn = ds.getConnection(); catch(Exception e) e.printStackTrace(); public synchronized static Connection getConnection() Connection temp=null; if(conn!=null) temp=conn; conn=null;
7、System.out.println(= + temp); return temp; else return null; public synchronized static void releaseConnection(Connection con) conn=con; public static void closeConn() try conn.close(); catch(Exception e) e.printStackTrace(); package dweap.teaching.dao;import java.sql.Connection;import java.sql.SQLE
8、xception;import com.mchange.v2.c3p0.ComboPooledDataSource;public class MysqlCp30Dao implements IDAO private static ComboPooledDataSource cpds = null; public static void openConnection() try if(cpds=null) cpds = new ComboPooledDataSource(); cpds.setDriverClass(com.mysql.jdbc.Driver); cpds.setJdbcUrl(
9、jdbc:mysql:/localhost:3306/teaching?autoReconnect=true); cpds.setUser(root); cpds.setPassword(123456); / cpds.setMaxStatements(10000); /连接池中保留的最大连接数。Default: 15 maxPoolSize cpds.setMaxPoolSize(1000); /当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 acquireIncrement cpds.setAcquireIncrement(5); /每60秒检查所有连接池中的
10、空闲连接。Default: 0 idleConnectionTestPeriod cpds.setIdleConnectionTestPeriod(120); cpds.setCheckoutTimeout(1800); /连接池中保留的最小连接数。 cpds.setMinPoolSize(5); /初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 initialPoolSize cpds.setInitialPoolSize(20); / 因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的 / 时候都
11、将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable / 等方法来提升连接测试的性能。Default: false testConnectionOnCheckout cpds.setTestConnectionOnCheckout(true); / 每次连接验证连接是否可用 /最大空闲时间,25000秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 maxIdleTime cpds.setMaxIdleTime(25000); /连接关闭时默认将所有未提交的操作回滚。Default: false autoCommitOnC
12、lose cpds.setAutoCommitOnClose(true); /如果设为true那么在取得连接的同时将校验连接的有效性。Default: false testConnectionOnCheckin cpds.setTestConnectionOnCheckin(true); /定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个一显著提高测试速度。注意: /测试的表必须在初始数据源的时候就存在。Default: null preferredTestQuery cpds.setTestConnectionOnCheckout(true); /定义在从数据库获取新连接失败后重
13、复尝试的次数。Default: 30 acquireRetryAttempts cpds.setAcquireRetryAttempts(30); /两次连接中间隔时间,单位毫秒。Default: 1000 acquireRetryDelay cpds.setAcquireRetryDelay(1000); /获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效 /保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试 /获取连接失败后该数据源将申明已断开并永久关闭。Default: false breakAfterAcqu
14、ireFailure cpds.setBreakAfterAcquireFailure(true); / /100 / /Test /100 / / / /3 / /300 catch(Exception e) e.printStackTrace(); public synchronized static Connection getConnection() Connection temp = null; try temp = cpds.getConnection(); catch (SQLException e) e.printStackTrace(); return temp; publi
15、c synchronized static void releaseConnection(Connection con) try con.close(); con = null; catch (SQLException e) e.printStackTrace(); 五、 准备实体类package dweap.teaching.entity;public abstract class Persistence package dweap.teaching.entity;import java.io.Serializable;public abstract class AbstractCode e
16、xtends Persistence implements Serializable private static final long serialVersionUID = -3502662370553592044L; private String id; private String upid; private String name; private String type; public String getId() return id; public void setId(String id) this.id = id; public String getUpid() return
17、upid; public void setUpid(String upid) this.upid = upid; public String getName() return name; public void setName(String name) this.name = name; public String getType() return type; public void setType(String type) this.type = type; package dweap.teaching.entity;import java.io.Serializable;public cl
18、ass Chapter extends AbstractCode implements Serializable private static final long serialVersionUID = 504166490665454688L;package dweap.teaching.entity;import java.io.Serializable;public class Department extends AbstractCode implements Serializable private static final long serialVersionUID = -54739
19、69294737077368L;package dweap.teaching.entity;import java.io.Serializable;public class Grade extends AbstractCode implements Serializable private static final long serialVersionUID = -3727884586881059176L;package dweap.teaching.entity;import java.io.Serializable;public class Level extends AbstractCo
20、de implements Serializable private static final long serialVersionUID = -3540154005236298430L;package dweap.teaching.entity;import java.io.Serializable;public class Major extends AbstractCode implements Serializable private static final long serialVersionUID = -1518894239837674421L;package dweap.tea
21、ching.entity;import java.io.Serializable;public class School extends AbstractCode implements Serializable private static final long serialVersionUID = 225534230139110992L;package dweap.teaching.entity;import java.io.Serializable;public class Schoolclass extends AbstractCode implements Serializable p
22、rivate static final long serialVersionUID = -171771897403418281L;package dweap.teaching.entity;import java.io.Serializable;public class Sex extends AbstractCode implements Serializable private static final long serialVersionUID = 2251595822298120338L;package dweap.teaching.entity;import java.io.Seri
23、alizable;public class Source extends AbstractCode implements Serializable private static final long serialVersionUID = -6872125758753735659L;package dweap.teaching.entity;import java.io.Serializable;public class Term extends AbstractCode implements Serializable private static final long serialVersionUID = -3384586706756055908L;六、 Dd
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1