導入jar包(mybatis+druid+mysql)
使用druid生成加密后的密碼
在jar包所在路徑下,打開cmd窗口,執行:java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools yourpassword
執行后生成
privateKey:MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEA4dZRH41lYjJDwSiWJu9xfZ1P26b3Anj34zUlMgednN317hDOEkKosIfH9TKCjdO2DJVUKkYMAl1E8nFOwtOGDwIDAQABAkAu6AC5ePjRyHbiK7fkJl+AI6huiuNLFC0IeAVdus81wVBsBzXyeL6xA0Zi7fyC4ozBoSdw+TKQycYcAKNi/j2BAiEA8txEkPTXapI7WwMZkVRXr8bkB6RQOOUNVrRGAlfwVP8CIQDuDkTd65FJOBCOOuku5Ri7CocTdey7F FqO+JtmOkJ+8QIhAKeXGvXRD+pp+O3ISNeCFXSmUmt3lyh73+WKR5mMZ7uvAiByn6RBRuAZ5UjzcyI8VktmJFeN40YtfktsdAA/ZOYHwQIgHRA+jMmU8qcxoqIA/QlZtOE17T1JUWIzv2UTodJ54L4= publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOHWUR+NZWIyQ8EolibvcX2dT9um9wJ49+M1JTIHnZzd9e4QzhJCqLCHx/Uygo3TtgyVVCpGDAJdRPJxTsLThg8CAwEAAQ== password:pQ3SPAMLel98ESuBsC3WLw9OdaX0Nu1MG0feSV4KhSJm4D5NyD7I1N/hfzXh93F/dhOyytrvSVzaSNqF/qh1LQ==
我們使用的是生成的password和publicKey,分別插入下面的mybatis-config.xml對應配置文件的No.1和No.2處
自定義數據源
import com.alibaba.druid.pool.DruidDataSource; import org.apache.ibatis.datasource.DataSourceFactory; import javax.sql.DataSource; import java.sql.SQLException; import java.util.Properties; public class DruidDataSourceFactory implements DataSourceFactory { private Properties properties; @Override public void setProperties(Properties properties) { this.properties = properties; } @Override public DataSource getDataSource() { DruidDataSource druidDataSource = new DruidDataSource(); druidDataSource.setDriverClassName(properties.getProperty("driver")); druidDataSource.setUrl(properties.getProperty("url")); druidDataSource.setUsername(properties.getProperty("username")); druidDataSource.setPassword(properties.getProperty("password")); try { druidDataSource.setFilters(properties.getProperty("filters")); } catch (SQLException e) { e.printStackTrace(); } druidDataSource.setConnectionProperties(properties.getProperty("connectionProperties")); try { druidDataSource.init(); } catch (SQLException e) { e.printStackTrace(); } return druidDataSource; } }
配置mybatis-config.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> <typeAliases> <typeAlias type="com.yuzhe.config.DruidDataSourceFactory" alias="DRUID"/> <typeAlias alias="User" type="com.yuzhe.entity.User" /> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置數據庫連接信息 --> <dataSource type="DRUID"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test001"/> <property name="username" value="root"/> <property name="password" value="password"/> <!-- No.1--> <property name="filters" value="config"/> <!-- 此處傳的是個以,分割的字符串。比如可以設置為config,stat,wall,log4j;stat是開啟druid的監控。后續會說明在非web項目中如何使用druid自帶的監控功能--> <property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=publicKey"/><!-- No.2--> </dataSource> </environment> </environments> <mappers> <mapper resource="com/yuzhe/mapper/XXX.xml"/> </mappers> </configuration>
測試
package com.yuzhe.test; import com.yuzhe.dao.UserMapper; import com.yuzhe.entity.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; public class Test { public static void main(String[] args) { InputStream inputStream = null; try{ inputStream = Resources.getResourceAsStream("mybatis-config.xml"); } catch (IOException e){ } SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); //執行CRUD操作 } }