MyBatis的环境搭建

来源:互联网 发布:java实现文件udp上传 编辑:程序博客网 时间:2024/06/10 23:17

本文转载至http://blog.csdn.net/mahoking

       本文将介绍MyBatis的环境搭建,本例使用的MyBatis的版本为mybatis-3.2.8.jar。下载地址为:http://download.csdn.net/detail/ma_hoking/8380541。本例使用的数据库为MySQL数据。具体的安装操作请参考:http://blog.csdn.net/mahoking/article/details/42921511

【转载使用,请注明出处:http://blog.csdn.net/mahoking】
       首先创建Java项目MyBatisTest。导入项目需要的jar文件mybatis-3.2.8.jar,由于本例需要连接MySQL数据库,所以需要导入mysql-connector-java-5.1.7-bin.jar。
 创建User实体对象

[java] view plain copy
print?在CODE上查看代码片派生到我的代码片
  1. public class User {  
  2.   
  3.     private Integer id ;  
  4.     private String userName ;  
  5.     private String password;  
  6.       
  7.     /* 
  8.       必须要有这个无参构造方法,不然根据UserMapper.xml中的配置, 
  9.       在查询数据库时,将不能反射构造出User实例    
  10.      /  
  11.     public User() {  
  12.     }  
  13.   
  14.     public User(String userName, String password) {  
  15.         super();  
  16.         this.userName = userName;  
  17.         this.password = password;  
  18.     }  
  19.       
  20.     public Integer getId() {  
  21.         return id;  
  22.     }  
  23.     public void setId(Integer id) {  
  24.         this.id = id;  
  25.     }  
  26.     public String getUserName() {  
  27.         return userName;  
  28.     }  
  29.     public void setUserName(String userName) {  
  30.         this.userName = userName;  
  31.     }  
  32.     public String getPassword() {  
  33.         return password;  
  34.     }  
  35.     public void setPassword(String password) {  
  36.         this.password = password;  
  37.     }  
  38. }  
public class User {

private Integer id ;private String userName ;private String password;/** * 必须要有这个无参构造方法,不然根据UserMapper.xml中的配置, * 在查询数据库时,将不能反射构造出User实例    */public User() {}public User(String userName, String password) {    super();    this.userName = userName;    this.password = password;}public Integer getId() {    return id;}public void setId(Integer id) {    this.id = id;}public String getUserName() {    return userName;}public void setUserName(String userName) {    this.userName = userName;}public String getPassword() {    return password;}public void setPassword(String password) {    this.password = password;}

}

        创建configuration.xml,该文件类似Hibernate.cfg.xml文件,可以称之为主配置文件。导入dtd文件。

[html] view plain copy
print?在CODE上查看代码片派生到我的代码片
  1. <!DOCTYPE configuration PUBLIC     
  2.     ”-//mybatis.org//DTD Config 3.0//EN”    
  3.     ”http://mybatis.org/dtd/mybatis-3-config.dtd“>   
<!DOCTYPE configuration PUBLIC 
"-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

           编写configuration.xml。

[html] view plain copy
print?在CODE上查看代码片派生到我的代码片
  1. <?xml version=“1.0” encoding=“UTF-8”?>  
  2. <!DOCTYPE configuration PUBLIC     
  3.     ”-//mybatis.org//DTD Config 3.0//EN”    
  4.     ”http://mybatis.org/dtd/mybatis-3-config.dtd“>    
  5. <configuration>  
  6.   
  7.     <typeAliases>  
  8.         <!– 注册实体Bean –>  
  9.         <typeAlias type=“com.mahaochen.mybatis.domain.User” alias=“User”/>  
  10.     </typeAliases>  
  11.       
  12.     <environments default=“development”>  
  13.         <environment id=“development”>  
  14.             <transactionManager type=“JDBC”/>  
  15.             <dataSource type=“POOLED”>  
  16.                 <property name=“driver” value=“com.mysql.jdbc.Driver” />  
  17.                 <property name=“url” value=“jdbc:mysql://127.0.0.1:3306/mhc”/>  
  18.                 <property name=“username” value=“root”/>  
  19.                 <property name=“password” value=“root”/>  
  20.             </dataSource>  
  21.         </environment>  
  22.     </environments>  
  23.       
  24.     <mappers>  
  25.         <mapper resource=“com/mahaochen/mybatis/domain/User.xml”/>  
  26.     </mappers>  
  27. </configuration>  
<?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>

&lt;typeAliases&gt;    &lt;!-- 注册实体Bean --&gt;    &lt;typeAlias type="com.mahaochen.mybatis.domain.User" alias="User"/&gt;&lt;/typeAliases&gt;&lt;environments default="development"&gt;    &lt;environment id="development"&gt;        &lt;transactionManager type="JDBC"/&gt;        &lt;dataSource type="POOLED"&gt;            &lt;property name="driver" value="com.mysql.jdbc.Driver" /&gt;            &lt;property name="url" value="jdbc:mysql://127.0.0.1:3306/mhc"/&gt;            &lt;property name="username" value="root"/&gt;            &lt;property name="password" value="root"/&gt;        &lt;/dataSource&gt;    &lt;/environment&gt;&lt;/environments&gt;&lt;mappers&gt;    &lt;mapper resource="com/mahaochen/mybatis/domain/User.xml"/&gt;&lt;/mappers&gt;

</configuration>


从上文可知,引入了User.xml,该文件类似于Hibernate中的*.hbm.xml文件。那我们现在编写User.xml文件。

[html] view plain copy
print?在CODE上查看代码片派生到我的代码片
  1. <?xml version=“1.0” encoding=“UTF-8” ?>    
  2. <!DOCTYPE mapper PUBLIC     
  3.     ”-//mybatis.org//DTD Mapper 3.0//EN”    
  4.     ”http://mybatis.org/dtd/mybatis-3-mapper.dtd“>  
  5.   
  6. <!– 这里namespace必须是UserMapper接口的路径,不然要运行的时候要报错 “is not known to the MapperRegistry”–>  
  7. <mapper namespace=“com.mahaochen.mybatis.interfaces.UserMapper”>  
  8.   
  9.   
  10.     <!– 这里的id必须和UserMapper接口中的接口方法名相同,不然运行的时候会报错 –>  
  11.     <!– 添加操作 这里sql结尾不能加分号,否则报错误 –>  
  12.     <insert id=“insertUser” parameterType=“User”>  
  13.         <![CDATA[ 
  14.         insert into mhc_user(userName,password) values(#{userName},#{password}) 
  15.         ]]>  
  16.     </insert>  
  17.       
  18.     <!– 删除操作 –>  
  19.     <delete id=“deleteUser” parameterType=“String”>  
  20.         <![CDATA[ 
  21.         delete from mhc_user where userName=#{userName} 
  22.         ]]>  
  23.     </delete>  
  24.       
  25.     <!– 更新操作 –>  
  26.     <update id=“updateUser” parameterType=“User”>  
  27.         <![CDATA[ 
  28.         update mhc_user set userName=#{userName},password=#{password} where id=#{id} 
  29.         ]]>  
  30.     </update>  
  31.       
  32.     <!– 查询操作 –>  
  33.     <select id=“selectUser” parameterType=“int” resultType=“User”>  
  34.         <![CDATA[ 
  35.         select * from mhc_user where id = #{id} ; 
  36.         ]]>  
  37.     </select>  
  38.       
  39.   
  40. </mapper>   
<?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“>

<!– 这里namespace必须是UserMapper接口的路径,不然要运行的时候要报错 “is not known to the MapperRegistry”–>
<mapper namespace=”com.mahaochen.mybatis.interfaces.UserMapper”>

&lt;!-- 这里的id必须和UserMapper接口中的接口方法名相同,不然运行的时候会报错 --&gt;&lt;!-- 添加操作 这里sql结尾不能加分号,否则报错误 --&gt;&lt;insert id="insertUser" parameterType="User"&gt;    &lt;![CDATA[    insert into mhc_user(userName,password) values(#{userName},#{password})    ]]&gt;&lt;/insert&gt;&lt;!-- 删除操作 --&gt;&lt;delete id="deleteUser" parameterType="String"&gt;    &lt;![CDATA[    delete from mhc_user where userName=#{userName}    ]]&gt;&lt;/delete&gt;&lt;!-- 更新操作 --&gt;&lt;update id="updateUser" parameterType="User"&gt;    &lt;![CDATA[    update mhc_user set userName=#{userName},password=#{password} where id=#{id}    ]]&gt;&lt;/update&gt;&lt;!-- 查询操作 --&gt;&lt;select id="selectUser" parameterType="int" resultType="User"&gt;    &lt;![CDATA[    select * from mhc_user where id = #{id} ;    ]]&gt;&lt;/select&gt;

</mapper>


       上文中出现com.mahaochen.mybatis.interfaces.UserMapper将在下文中介绍。 MyBatis与Hibernate有一定的相似之处,在学习Hibernate时,博主介绍了HibernateUtil这个工具对象用于管理SessionFactory和Session。对于MyBatis,这里我们也需要创建一个MyBatisUtil对象用于管理SqlSessionFactory和SqlSession。

[java] view plain copy
print?在CODE上查看代码片派生到我的代码片
  1. / 
  2.   提供获取SqlSessionFactory对象或管理Sesison的操作 
  3.   @author mahc 
  4.   
  5.  /  
  6. public class MyBatisUtil {  
  7.   
  8.     private static SqlSessionFactory ssf;  
  9.     static{  
  10.         String resource = ”configuration.xml”;  
  11.         Reader reader;  
  12.         try {  
  13.             reader = Resources.getResourceAsReader(resource);  
  14.             ssf = new SqlSessionFactoryBuilder().build(reader);  
  15.         } catch (IOException e) {  
  16.             e.printStackTrace();  
  17.         }  
  18.     }  
  19.       
  20.     / 
  21.       获取SqlSessionFactory 
  22.       @return 
  23.      /  
  24.     public static SqlSessionFactory getSqlSessionFactory(){  
  25.           
  26.         return ssf;  
  27.     }  
  28.       
  29.     / 
  30.       关闭Session 
  31.       @param session 
  32.      /  
  33.     public static void closeSession(SqlSession session){  
  34.           
  35.         if(null!=session){  
  36.             session.close();  
  37.         }  
  38.     }  
  39. }  
/ 
* 提供获取SqlSessionFactory对象或管理Sesison的操作
* @author mahc
*
*/
public class MyBatisUtil {

private static SqlSessionFactory ssf;static{    String resource = "configuration.xml";    Reader reader;    try {        reader = Resources.getResourceAsReader(resource);        ssf = new SqlSessionFactoryBuilder().build(reader);    } catch (IOException e) {        e.printStackTrace();    }}/** * 获取SqlSessionFactory * @return */public static SqlSessionFactory getSqlSessionFactory(){    return ssf;}/** * 关闭Session * @param session */public static void closeSession(SqlSession session){    if(null!=session){        session.close();    }}

}

       MyBatis环境搭建就此完成,具体的操作数据库的增删改查操作将在下文中介绍。敬请期待!!点击查看下文!

【转载使用,请注明出处:http://blog.csdn.net/mahoking

0 0