獲得Java的MyBatis框架項目中的SqlSession的辦法。本站提示廣大學習愛好者:(獲得Java的MyBatis框架項目中的SqlSession的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是獲得Java的MyBatis框架項目中的SqlSession的辦法正文
從XML中構建SqlSessionFactory
從XML文件中構建SqlSessionFactory的實例異常簡略。這裡建議你應用類途徑下的資本文件來設置裝備擺設.
String resource = "org/mybatis/example/Configuration.xml"; Reader reader = Resources.getResourceAsReader(resource); sqlMapper = new SqlSessionFactoryBuilder().build(reader);
XML設置裝備擺設文件包括對MyBatis體系的焦點設置,包括獲得數據庫銜接實例的數據源和決議事務規模和掌握的事務治理器。如例:
<?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="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="org/mybatis/example/BlogMapper.xml"/> </mappers> </configuration>
固然,在XML設置裝備擺設文件中還有許多可以設置裝備擺設的,下面的示例指出的則是最症結的部門。
從SqlSessionFactory中獲得SqlSession
如今,我們曾經曉得若何獲得SqlSessionFactory對象了,基於異樣的啟發,我們便可以取得SqlSession的實例了。SqlSession對象完整包括以數據庫為配景的一切履行SQL操作的辦法。你可以用SqlSession實例來直接履行已映照的SQL 語句。例如:
SqlSession session = sqlMapper.openSession(); try{ Blog blog = (Blog)session.selectOne("org.mybatis.example.BlogMapper.selectBlog",101); }finally{ session.close(); }
如今有一種更簡練的辦法。應用公道描寫參數和SQL語句前往值的接口(好比BlogMapper.class),如許如今就更簡略,更平安的代碼,沒有輕易產生的字符串文字和轉換的毛病。例如:
SqlSession session = sqlSessionFactory.openSession(); try { BlogMapper mapper = session.getMapper(BlogMapper.class); Blog blog = mapper.selectBlog(101); }finally{ session.close(); }
探討已映照的SQL語句
這裡給出一個基於XML映照語句的示例,這些語句應當可以知足上述示例中SqlSession對象的挪用。
<?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="org.mybatis.example.BlogMapper"> <select id="selectBlog" parameterType="int" resultType="Blog"> select * from Blog where id = #{id} </select> </mapper>
在定名空間“com.mybatis.example.BlogMapper”中,它界說了一個名為“selectBlog”的映照語句,如許它許可你應用完整限制名“org.mybatis.example.BlogMapper.selectBlog”來挪用映照語句,我們上面示例中的寫法也就是如許的。
Blog blog = (Blog)session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);
但上面的挪用更有優勢:
映照接口對應映照xml文件的敕令空間,接口辦法對應映照xml文件中界說的SQL映照的ID。???????????
BlogMapper mapper = session.getMapper(BlogMapper.class); Blog blog = mapper.selectBlog(101);
起首它不是基於文字的,那就更平安了。第二,假如你的IDE有代碼補全功效,那末你可以應用它來把持已映照的SQL語句。第三,不須要強迫類型轉換,同時BlogMapper接口可以堅持簡練,前往值類型很平安(參數類型也很平安)。