连接MySQL的5种方式

      我们从事项目开发,和数据库打交道是必不可少的环节。今天为大家分享Java中连接数据库(本文演示使用的是MySQL数据库,其他关系型数据库类似)常用的5种方式,读者可以自行比较优缺点,在实际项目开发或学习研究中采用其中一种即可!

     首先,需要导入相关jar包。 这里是5种连接方式jar包的总和,按项目实际需要添加即可。截图如下:

    

一、直接代码连接

测试代码如下:

public class TestConnByJDBC {

public static void main(String[] args) throws SQLException {

    Connection conn = null;
    String driver = "com.mysql.cj.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC";
    String username = "root";
    String password = "root";

try {

    Class.forName(driver);
    conn = DriverManager.getConnection(url, username, password);
    System.out.println("TestConnectionByJDBC success");
    conn.close();
} catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
        }
    }
}

效果图:

二、读取属性文件

        在src下新建属性文件jdbc.properties,并加入以下内容:

driver =com.mysql.cj.jdbc.Driver
url =jdbc:mysql://localhost:3306/test?serverTimezone=UTC
username =root
password =root

测试代码如下:

public class TestConnByPropertiesFile {

public static void main(String[] args) throws IOException, ClassNotFoundException {

InputStream in = TestConnByPropertiesFile.class.getClassLoader().getResourceAsStream("jdbc.properties");

Properties pt = new Properties();
pt.load(in);

String driver = pt.getProperty("driver");
String url = pt.getProperty("url");
String username = pt.getProperty("username");
String password = pt.getProperty("password");

    Connection conn = null;
Class.forName(driver);

try {
conn = DriverManager.getConnection(url, username, password);
System.out.println("TestConnectionByPropertiesFile success");
conn.close();
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

效果图:

三、C3p0配置

       在src下新建配置文件c3p0-config.xml,并加入以下内容:

<?xml version="1.0" encoding="UTF-8"?>

<c3p0-config>
<named-config name="myTest">
<property name="user">root</property>
<property name="password">root</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test?serverTimezone=UTC</property>
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
        <property name="acquireIncrement">5</property>
<property name="initialPoolSize">20</property>
<property name="maxPoolSize">25</property>
<property name="minPoolSize">5</property>
</named-config>
</c3p0-config>

测试代码如下:

public class TestConnByC3P0Conf {
    
    private static ComboPooledDataSource cpds;
    static {
        cpds = new ComboPooledDataSource("myTest");
    }
    public static DataSource getDataSource() {
        return cpds;
    }
    public static Connection getConnection() throws SQLException {
        return cpds.getConnection();
    }
    
    public static void main(String[] args) throws Exception{
        Connection connection =  TestConnByC3P0Conf.getConnection();
        System.out.println(connection);
    }
}

效果图:

四、使用MyBatis

        在src下新建配置文件MyBatisconfig.xml,并加入如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <environments default="development">
       <environment id="development">
           <transactionManager type="JDBC" />
           <dataSource type="POOLED">
              <property name="driver" value="com.mysql.cj.jdbc.Driver" />
              <property name="url" value="jdbc:mysql://localhost:3306/test?serverTimezone=UTC" />
              <property name="username" value="root" />
              <property name="password" value="root" />
           </dataSource>
       </environment>
    </environments>
</configuration>

测试代码如下:

public class TestConnByMyBatis {

    public static void main(String[] args) {
        String resource = "./src/MyBatisconfig.xml";
        InputStream is = null;
        try {
            is = new FileInputStream(resource);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        SqlSession session = sessionFactory.openSession();
        System.out.println(session.getConnection());
    }
}

效果图:

五、使用Hibernate

        在src下新建配置文件hibernate.cfg.xml,并加入如下内容:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>

<session-factory>

<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test?serverTimezone=UTC</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.pool_size">2</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">create</property>
</session-factory>

</hibernate-configuration>

测试代码如下:

public class TestConnByHibernate {
    
    public static void main(String[] args) {
        Configuration configure = new Configuration().configure();
        SessionFactory factory = configure.buildSessionFactory();
        Session session = factory.openSession();
        System.out.println(session.connection());
    }
}

效果图:

  至此,我们学会了连接数据库的各种方式!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值