mybatis环境搭建

建立mybatis环境大概需要五个步骤:

1、建立项目,引入jar包

2、建立数据库,将表和类一一映射

3、配置配置文件,连接数据库

4、写接口,并实现

5、测试是否搭建成功


1、建立项目,引入jar包

建立Java项目或maven项目均可,我建的是maven项目,然后导入jar包:mybatis和MySQL的jar包,我导入的版本分别是:mybatis-3.4.2.jar和mysql-connector-Java-5.1.42-bin.jar,大家可以上网下载下。导入后右键点击然后选择build path,把他们加入到路径下。

2、建立数据库,将表和类一一映射

在数据库中建立学生信息表student(id, name, sex, age, address)对应的实体类是Student,如下:

[java]  view plain  copy
  1. public class Student {  
  2.     private long   id;  
  3.     private String name;  
  4.     private String sex;  
  5.     private int    age;  
  6.     private String address;  
  7.       
  8.     public long getId() {  
  9.         return id;  
  10.     }  
  11.     public void setId(long id) {  
  12.         this.id = id;  
  13.     }  
  14.     public String getName() {  
  15.         return name;  
  16.     }  
  17.     public void setName(String name) {  
  18.         this.name = name;  
  19.     }  
  20.     public String getSex() {  
  21.         return sex;  
  22.     }  
  23.     public void setSex(String sex) {  
  24.         this.sex = sex;  
  25.     }  
  26.     public int getAge() {  
  27.         return age;  
  28.     }  
  29.     public void setAge(int age) {  
  30.         this.age = age;  
  31.     }  
  32.     public String getAddress() {  
  33.         return address;  
  34.     }  
  35.     public void setAddress(String address) {  
  36.         this.address = address;  
  37.     }  
  38.       
  39.     @Override  
  40.     public String toString() {  
  41.         return "Student [id=" + id + ", name=" + name + ", sex=" + sex + ", age=" + age + ", address=" + address + "]";  
  42.     }  
  43.       
  44. }  
3、配置配置文件,连接数据库
既然需要操作数据库,那么肯定需要先连接数据库了。 如何连接:

在mybatis的配置文件中:configuration.xml进行数据库连接配置。

configuration.xml文件如下:

[java]  view plain  copy
  1. <configuration>  
  2.     <!-- 为用到的实体类取别名 -->  
  3.     <typeAliases>  
  4.         <!-- <typeAlias alias="别名" type="实体类路径全名:包名+类名"/> -->  
  5.         <typeAlias alias="Student" type="com.mybatis.model.student.Student"/>  
  6.     </typeAliases>   
  7.   
  8.     <environments default="development">  
  9.         <environment id="development">  
  10.             <!-- 默认的事务管理 -->  
  11.             <transactionManager type="JDBC"/>  
  12.             <!-- 默认的数据库连接 -->  
  13.             <dataSource type="POOLED">  
  14.             <property name="driver" value="com.mysql.jdbc.Driver"/>  
  15.             <property name="url" value="jdbc:mysql://127.0.0.1:3306/school" />  
  16.             <property name="username" value="root"/>  
  17.             <property name="password" value="root"/>  
  18.             </dataSource>  
  19.         </environment>  
  20.     </environments>  
  21.       
  22.     <mappers>  
  23.         <!-- 映射文件 -->  
  24. <span style="white-space:pre">  </span><!-- 如果映射文件和接口文件在同一包下面那么可以不用此配置,因为它会默认去接口的同一包下面找 -->  
  25.         <mapper resource="com/mybatis/model/student/StudentMapper.xml"/>  
  26.     </mappers>  
  27. </configuration>  
其中,别名的作用是可以在用到这个类时直接使用别名,而不用再写全路径名了

4、写接口,并实现

接口也就是所谓的dao层,主要在这层进行增删改查,在src/main/java目录先建立com.mybatis.dao.student包,然后定义学生接口IStudent,具体如下:

[java]  view plain  copy
  1. public interface IStudent {  
  2.     public Student findStudentById(long id);  
  3.     public void addStudent(Student student);  
  4.     public void updateStudent(Student student);  
  5.     public void deleteStudent(long id);  
  6. }  
我们都知道接口需要实现的,在这里怎么实现呢?上文提到过映射文件,是的,通过映射文件来实现接口,这也就是mybatis的好处体现的地方之一,灵活、消除繁琐的jdbc代码,如果我们需要改动可以直接在映射文件中进行更改。IStudent接口映射文件StudentMapper.xml如下:
[java]  view plain  copy
  1. <!-- 命名空间需要和IStudent的路径对应,IStudent中的方法名跟下边的操作中的id属性对应,否则会出错 -->  
  2. <mapper namespace="com.mybatis.dao.student.IStudent">  
  3. <!-- parameterType是需要穿进去的参数的类型,resultType是返回的参数类型,此处Student即是上午学生类的别名,如果没有别名的话就需要写全限定类名 -->  
  4.     <select id="findStudentById" parameterType="long" resultType="Student">  
  5.         select * from student where id = #{id}  
  6.     </select>  
  7.       
  8.     <insert id="addStudent" parameterType="Student" useGeneratedKeys="true" keyProperty="id">  
  9.         insert into student(name, sex, age, address) values(#{name}, #{sex}, #{age}, #{address})  
  10.     </insert>  
  11.       
  12.     <update id="updateStudent" parameterType="Student">  
  13.         update student set name = #{name},age = #{age}, sex = #{sex}, address = #{address} where id = #{id}  
  14.     </update>  
  15.       
  16.     <delete id="deleteStudent" parameterType="long">  
  17.         delete from student where id = #{id}  
  18.     </delete>  
  19. </mapper>  
StudentMapper.xml文件在src/main/java/com/mybatis/dao/student包下。另外#{}相当于占位符,传递的参数通过名字进行对应的赋值。

注意:mybatis中有配置文件和映射文件两种xml文件,有些初接触的小伙伴可能会觉得有点懵。


5、测试是否搭建成功

在src/main/java下新建包test,test包下新建测试类Test,

[java]  view plain  copy
  1. <pre name="code" class="java">public class Test {  
  2.     private static SqlSessionFactory sqlSessionFactory;  
  3.       
  4.     static{  
  5.         Reader reader;  
  6.         try {  
  7.             //读取配置文件  
  8.             reader = Resources.getResourceAsReader("config.xml");  
  9.             //建立sqlSessionFactory  
  10.             sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);  
  11.         } catch (IOException e) {  
  12.             e.printStackTrace();  
  13.         }  
  14.     }  
  15.       
  16.     public static void main(String[] args){  
  17.         SqlSession sqlSession = sqlSessionFactory.openSession();  
  18.         //getMapper中的参数为对应的接口类    
  19.         IStudent iStudent = sqlSession.getMapper(IStudent.class);  
  20.         //查找学号为9的学生,并打印    
  21.         Student student = iStudent.findStudentById(9L);  
  22.         System.out.println("id:" + student.getId());  
  23.         System.out.println("name:" + student.getName());  
  24.         System.out.println("age:" + student.getAge());  
  25.         System.out.println("sex:" + student.getSex());  
  26.         System.out.println("address:" + student.getAddress());  
  27.           
  28.         //更新刚刚查出的学号为9的学生的姓名和地址    
  29.         student.setName("关二爷");  
  30.         student.setAddress("蜀国");  
  31.         iStudent.updateStudent(student);  
  32.         sqlSession.commit();  
  33.     }  
  34. }

运行结果为:

再次运行结果为:

说明学号为9的学生的信息已经更改。

注意:除了select不需要commit外,其余update、delete、insert都需要commit,否则不起作用。
到此,mybatis环境搭建算是成功了。但是在实际项目中很少有单独使用mybatis,都是好几个框架综合使用,比如现在流行的ssm,不过话又说回来,单独的会使用,综合在一起也不难,需要做的仅仅是框架整合部分的工作而已。我会抽空把整合的也整理出来。人总是会偷懒的,就像这篇总结,其实打草稿好久了,但是一直没有完成,一是怕写的不好表达不出意思,二是想写的时候就拖,人总是会给自己找各种各样的接口,但是生活不会,所以想过好的生活那就从勤奋和好习惯开始。

PS:写的不好或者不清楚的地方欢迎指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值