10.MyBatis配置檔案
阿新 • • 發佈:2020-12-12
技術標籤:MyBatis學習筆記mybatis
可變引數
- Configuration XML 的引數可以是變化的,本例將資料庫IP、使用者名稱、密碼設為可變項。
1.修改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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://${server}/af_example?useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="mybatis-mapper.xml"/> </mappers> </configuration>
2.修改mybatis-mapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="af.test"> <select id="getStudent" resultType="my.Student"> select * from student where id = #{id} </select> </mapper>
3.測試Properties 用法有點像HashMap
package my; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import java.util.Properties; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class Test { public static void main(String[] args) throws Exception { // 設定引數 Properties props = new Properties(); props.put("server", "127.0.0.1"); props.put("username", "root"); props.put("password", "a1b2c3"); // 建立 SqlSessionFactory String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream,props);//傳入可變引數 // 使用簡化的try-with-resources語法,等效於try..finally語句 try (SqlSession session = sqlSessionFactory.openSession()) { Map<String,Object> para=new HashMap<>(); para.put("id", 20190001); Student row = session.selectOne("af.test.getStudent",para); if(row != null) System.out.println("找到一條記錄"); } System.out.println("Exit"); } }
4.結果