最近觉得jdbc还是很好用的,主要还是效率高哈哈
一般我写jdbc都喜欢写基类
第一种直接通过常量来获取连接
第二种通过属性文件区读取连接信息
其实只是连接信息的读取不一样
首先我们要先在项目里面添加.properties文件,然后来读取.properties(属性)文件,在项目中我们一般将他们放在默认的路径(src)下创建
文件里面写
driver=com.microsoft.sqlserver.SQLServerDriver
url=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=news
user=sa
password=123
当在调用Properties类的load()方法时,系统把.properties文件的内容加载到内存中
步骤:
1.InputStream is=getClass().getResourceAsStream("文件名");
2.调用Properties的load方法
3.getProperty("属性名");这里的属性名就是之前在.properties中定义字符的等号前面的
4.通过String变量去接收
例如:String Driver=load(getClass().getResourceAsStream("文件名")).getProperty("driver");
就这样去获取连接信息
以上是但个连接的2种不同的配置法,每次只有一个连接打开或关闭,这也引起了我们去思考,有没有连接在初始化时创建一定数量的数据库连接,所以有了连接池呵呵
那么有了数据库连接池我们只需要从连接池中取出空闲状态的数据库连接,当程序访问数据库结束时,再将数据库连接放回连接池,这样可以提高数据库的访问效率
数据库连接池怎么获取连接呢:
1.Context ic=new InitialContext();
2.DataSource source=(DataSource) ic.lookup("java:comp/env/jdbc/B2CShop");
3.Connection con=source.getConnection();
我们是通过JNDI技术去获取的DataSource
所以呢我们的JNDI还得去配置
在Tomcat的根目录\config\context.xml中添加信息
<Resource name="jdbc/B2CShop" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sa" password="" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;DatabaseName=news"/>
在将sql的驱动放到Tomcat 目录的lib文件夹里面
其实数据连源就是由Tomca容器去创建的
一般我写jdbc都喜欢写基类
第一种直接通过常量来获取连接
package com.demo.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BaseJdbcDao {
//连接的驱动字符串
public static final String DRIVER="com.microsoft.sqlserver.SQLServerDriver";
//连接的URL
public static final String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=news";
//数据库用户名
public static final String NAME="sa";
//数据库密码
public static final String PARSWORD="123";
//连接对象
public static Connection con=null;
public static PreparedStatement pstmt=null;
//结果集
public static ResultSet rs=null;
/**
* 获取链接
*
* @return
* @throws ClassNotFoundException
* @throws SQLException
*/
public Connection getCon() throws ClassNotFoundException, SQLException{
Class.forName(DRIVER);
con=DriverManager.getConnection(URL,NAME,PARSWORD);
return con;
}
/**
* 关闭方法
*
* @param con
* @param pstmt
* @param rs
* @throws SQLException
*/
public void closeAll(Connection con,PreparedStatement pstmt,ResultSet rs) throws SQLException{
if(rs!=null){
rs.close();
}
if(pstmt!=null){
pstmt.close();
}
if(con!=null){
con.close();
}
}
}
第二种通过属性文件区读取连接信息
其实只是连接信息的读取不一样
首先我们要先在项目里面添加.properties文件,然后来读取.properties(属性)文件,在项目中我们一般将他们放在默认的路径(src)下创建
文件里面写
driver=com.microsoft.sqlserver.SQLServerDriver
url=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=news
user=sa
password=123
当在调用Properties类的load()方法时,系统把.properties文件的内容加载到内存中
步骤:
1.InputStream is=getClass().getResourceAsStream("文件名");
2.调用Properties的load方法
3.getProperty("属性名");这里的属性名就是之前在.properties中定义字符的等号前面的
4.通过String变量去接收
例如:String Driver=load(getClass().getResourceAsStream("文件名")).getProperty("driver");
就这样去获取连接信息
以上是但个连接的2种不同的配置法,每次只有一个连接打开或关闭,这也引起了我们去思考,有没有连接在初始化时创建一定数量的数据库连接,所以有了连接池呵呵
那么有了数据库连接池我们只需要从连接池中取出空闲状态的数据库连接,当程序访问数据库结束时,再将数据库连接放回连接池,这样可以提高数据库的访问效率
数据库连接池怎么获取连接呢:
1.Context ic=new InitialContext();
2.DataSource source=(DataSource) ic.lookup("java:comp/env/jdbc/B2CShop");
3.Connection con=source.getConnection();
我们是通过JNDI技术去获取的DataSource
所以呢我们的JNDI还得去配置
在Tomcat的根目录\config\context.xml中添加信息
<Resource name="jdbc/B2CShop" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sa" password="" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;DatabaseName=news"/>
在将sql的驱动放到Tomcat 目录的lib文件夹里面
其实数据连源就是由Tomca容器去创建的