Mybatis3.5的使用心得

應要求,本次內容需要用到mybatis框架,抱着一法通,則萬法通的心態,就先過去看了下官方文檔,然後使用了一下,總結如下用法:

1、首先,要下載mybatis的jar包,這個官網上直接有,我就不貼地址了。

2、我使用的是mysql數據庫,所以,還需要mysql的驅動包

3、兩個包搞定後,需要一個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="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/數據庫名"/>
        <property name="username" value="xxxx"/>
        <property name="password" value="xxxx"/>
      </dataSource>
    </environment>
  </environments>
</configuration>

這個文件名字一般是conf.xml,嗯,習慣重於編程,那麼我們就按照習慣來,不改名字了。對了, 位置放在src下面

這個文件裏面的東西,其實一看也就明白了,是幫我們連接數據庫用的,就不多做解釋了。

4、數據庫建好表,不多累贅

5、建立與數據庫表對應的實體類,注意,請一一對照

6、這個時候,重點來了,如何使用呢?官網給了我們兩個方法:一個是xml配置文件,一個是註解,我們簡單的使用,用註解的方式不知道要好到哪裏去咯,於是我們使用註解的方法。

public interface ResuserMapper {	
	//使用@Select註解指明getAll方法要執行的SQL
	@Select("select * from resuser")
	public Resuser getAll();
}

其中,Resuser是我的實體類,數據庫名字叫做resuser

7、到conf.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://localhost:3306/數據庫名"/>
        <property name="username" value="root"/>
        <property name="password" value="xxxx"/>
      </dataSource>
    </environment>
  </environments>
  
  <mappers>
      <!-- 註冊UserMapper映射接口-->
      <mapper class="com.yc.mapping.ResuserMapper"/>
  </mappers>
</configuration>

8、到此,準備工作就做完了,那麼現在,可以去寫測試類了

public static void main(String[] args) {
		//mybatis的資源配置文件
		String resource = "conf.xml";
		//得到IO流
		InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);
		//每個基於 MyBatis 的應用都是以一個 SqlSessionFactory 的實例爲核心的
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
		//得到session
		SqlSession sqlSession=factory.openSession(true);		//true  自動提交
		
		//得到ResuserMapper接口的實現類對象,ResuserMapper接口的實現類對象由sqlSession.getMapper(ResuserMapper.class)動態構建出來
		ResuserMapper mapper = sqlSession.getMapper(ResuserMapper.class);
		//執行查詢操作,將查詢結果自動封裝成List<User>返回
		List<Resuser> lstUsers = mapper.getAll();
		//使用SqlSession執行完SQL之後需要關閉SqlSession
		sqlSession.close();
		System.out.println(lstUsers);
}

9、emmmmm,這個時候,可能會有一堆的錯誤,當然,歐洲程序猿請自覺走開,到這裏就差不多了。

第一個錯誤:Unsupported major.minor version 52.0

原因是因爲mybatis3.5最低支持jdk1.8,因此如果你是jdk1.7的,請換成jdk1.8以上

 

第二個錯誤:Mybatis錯誤:Parameter 'XXX' not found. Available parameters are [1, 0, param1, param2]

這個是因爲你有參數注入,那麼,這個時候,爲了確定順序,需要你帶上@param註解

@Select("select * from resuser where username=#{username} and pwd=#{pwd}")
public Resuser login(@Param("username")String username,@Param("pwd")String pwd);

 

第三個錯誤:java.lang.AbstractMethodError: Method com/mysql/jdbc/PreparedStatement.isClosed()Z is abstract

原因是因爲你的mysql驅動包版本過低,請更新一下子~~

 

好啦,暫時到現在爲止,就出現這些錯誤,等發現了,再說

see you

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章