java连接各种数据库_Java连接各类数据库

本文详细介绍了如何使用Java连接不同类型的数据库,包括MySQL、Oracle、Sql Server、DB2、Informix和Sybase,涵盖了加载JDBC驱动、建立数据库连接、创建Statement或PreparedStatement对象、执行SQL语句以及资源关闭等步骤。同时,展示了使用Apache DBCP进行数据库连接池配置的实例,以提升应用程序的性能和资源管理。
摘要由CSDN通过智能技术生成

几种常用数据库的连接,以及Dao层的实现。

1、加载JDBC驱动:

1 加载JDBC驱动,并将其注册到DriverManager中:

2 //MySQL数据库

3 Class.forName("com.mysql.jdbc.Driver").newInstance();

4 //Oracle数据库

5 Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

6 //Sql Server数据库

7 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

8 //DB2数据库

9 Class.froName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();

10 //Informix数据库

11 Class.forName("com.informix.jdbc.IfxDriver").newInstance();

12 //Sybase数据库

13 Class.forName("com.sybase.jdbc.SybDriver").newInstance();

14 //PostgreSQL数据库

15 Class.forNaem("org.postgresql.Driver").newInstance();

2、建立数据库连接:

1 //MySQL数据库//后接字符格式防止中文乱码

2 String url="jdbc:mysql://localhost:3306/test?user=root&password=123456&useUnicode=true&characterEncoding=utf-8";

3 Connection conn=DriverManager.getConnection(url);

4

5 //Oracle数据库

6 String url="jdbc:oracle:thin:@localhost:1521:orcl";

7 String user="scott";

8 String password="tiger";

9 Connection conn=DriverManager.getConnection(url,user,password);

10

11 //Sql Server数据库

12 String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";

13 String user="admin";

14 String password="123456";

15 Connection conn=DriverManager.getConnection(url,user,password);

16

17 //DB2数据库

18 String url="jdbc:db2://localhost:5000/sample";

19 String user="amdin"

20 String password=-"123456";

21 Connection conn=DriverManager.getConnection(url,user,password);

22

23 //Informix数据库

24 String url="jdbc:informix-sqli://localhost:1533/testDB:INFORMIXSERVER=myserver;user=username;password=123456";

25 Connection conn=DriverManager.getConnection(url);

26

27 //Sybase数据库

28 String url="jdbc:sybase:Tds:localhost:5007/tsdata";

29 Properties sysProps=System.getProperties();

30 SysProps.put("user","userid");

31 SysProps.put("password","password");

32 Connection conn=DriverManager.getConnection(url,SysProps);

33

34 //PostgreSQL数据库

35 String url="jdbc:postgresql://localhost/test";

36 String user="myuser";

37 String password="123456";

38 Connection conn=DriverManager.getConnection(url,user,password);

3、建立Statement对象或PreparedStatement对象:

1 //建立Statement对象2 String sql="select * from user where userName="+username;

3 Statement stmt=conn.createStatement(sql);

4 //建立ProparedStatement对象

5 String sql="select * from user where userName=?";

6 PreparedStatement pstmt=Conn.prepareStatement(sql);

7 pstmt.setString(1,"admin");

4、执行sql语句:

1 //执行SQL查询

2 String sql1="select * from users";

3 ResultSet rs=stmt.executeQuery(sql);

5

6 //执行insert update delete等语句

7 String sql2="delete from users where id=?";

8 pstmt.setString(1, id);

9 pstmt.executeUpdate(sql);

5、执行完毕后,依将关闭ResultSet、Statement、PreparedStatement、Connection对象,释放所占用的资源:

1 rs.close();

// 2 stmt.close();

3 pstmt.close();

4 con.close();

以上就是整个数据库连接的完整步骤。下面是我做的数据库工厂例子,返回一个数据库连接对象

(当然,你首先得导入对应数据库的连接包,此处以MySql数据库为例)

1 package com.db;

2

3 import java.io.InputStream;

4 import java.sql.Connection;

5 import java.sql.PreparedStatement;

6 import java.sql.ResultSet;

7 import java.sql.SQLException;

8 import java.util.Properties;

9

10 import javax.sql.DataSource;

11

12 import org.apache.commons.dbcp.BasicDataSourceFactory;

13

14 public class DbcpDb {

15 private static DataSource ds=null;

16

17 static

18 {

19

20 try {

21 InputStream in=DbcpDb.class.getClassLoader().

22 getResourceAsStream("dbcpconfig.properties");//加载配置

23 Properties prop=new Properties();

24 prop.load(in);

25 BasicDataSourceFactory factory=new BasicDataSourceFactory();//工厂模式

26 ds=factory.createDataSource(prop);//将配置传递给Datasource工厂

27 }catch (Exception e) {

28 // TODO Auto-generated catch block

29 e.printStackTrace();

30 throw new RuntimeException(e.getMessage());

31 }

32

33 }

34

35 public static Connection getConnection() throws SQLException {

36 return ds.getConnection();

37

38 }

39

40 public static void close(Connection con,PreparedStatement pstmt,ResultSet rs) {

41 try {

42 if(rs!=null)

43 rs.close();

44 } catch (SQLException e) {

45 // TODO Auto-generated catch block

46 e.printStackTrace();

47 }

48 try {

49 if(pstmt!=null)

50 pstmt.close();

51 } catch (SQLException e) {

52 // TODO Auto-generated catch block

53 e.printStackTrace();

54 }

55 try {

56 if(con!=null)

57 con.close();

58 } catch (SQLException e) {

59 // TODO Auto-generated catch block

60 e.printStackTrace();

61 }

62 }

63

64 }

使用配置文件是一种良好的编程习惯,避免了数据库配置与代码的硬耦合,以下是数据库配置文件("dbcpconfig.properties"):

1 #连接设置

2 driverClassName=com.mysql.jdbc.Driver

3 url=jdbc\:mysql\://localhost\:3306/test

4 username=root

5 password=123456

6

7 #

8 initialSize=10

9 #

10 maxActive=50

11 #

12 maxIdle=20

13 #

14 minIdle=5

15 #

16 maxWait=60000

17

18 #JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;]

19 #注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。

20 connectionProperties=useUnicode=true;characterEncoding=utf8

21

22 #指定由连接池所创建的连接的自动提交(auto-commit)状态。

23 defaultAutoCommit=true

24

25 #driver default 指定由连接池所创建的连接的只读(read-only)状态。

26 #如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)

27 defaultReadOnly=

28

29 #driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。

30 #可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE

31 defaultTransactionIsolation=READ_COMMITTED

dao层事例

1 package com.dao;

2

3 import java.io.Serializable;

4 import java.util.List;

5

6 public interface BaseDao{

7

8 public boolean save(T entity);

9

10 public boolean update(T entity);

11

12 public boolean delete(T entity);

13

14 public T findById(Serializable id);

15

16 public List findByHql(String hql,Object...params);

17

18 public List findByPage(String hql,int pageNo,int pageSize,Object...params);

19

20 public int getCount(String hql,Object...params);

21

22 }

dao的实现层

省。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值