mybatis环境搭建

xiaoxiao2021-02-28  108

建立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 public class Student {       private long   id;       private String name;       private String sex;       private int    age;       private String address;              public long getId() {           return id;       }       public void setId(long id) {           this.id = id;       }       public String getName() {           return name;       }       public void setName(String name) {           this.name = name;       }       public String getSex() {           return sex;       }       public void setSex(String sex) {           this.sex = sex;       }       public int getAge() {           return age;       }       public void setAge(int age) {           this.age = age;       }       public String getAddress() {           return address;       }       public void setAddress(String address) {           this.address = address;       }              @Override       public String toString() {           return "Student [id=" + id + ", name=" + name + ", sex=" + sex + ", age=" + age + ", address=" + address + "]";       }          }   3、配置配置文件,连接数据库 既然需要操作数据库,那么肯定需要先连接数据库了。 如何连接:

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

configuration.xml文件如下:

[java]  view plain  copy <configuration>       <!-- 为用到的实体类取别名 -->       <typeAliases>           <!-- <typeAlias alias="别名" type="实体类路径全名:包名+类名"/> -->           <typeAlias alias="Student" type="com.mybatis.model.student.Student"/>       </typeAliases>           <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://127.0.0.1:3306/school" />               <property name="username" value="root"/>               <property name="password" value="root"/>               </dataSource>           </environment>       </environments>              <mappers>           <!-- 映射文件 -->   <span style="white-space:pre">  </span><!-- 如果映射文件和接口文件在同一包下面那么可以不用此配置,因为它会默认去接口的同一包下面找 -->           <mapper resource="com/mybatis/model/student/StudentMapper.xml"/>       </mappers>   </configuration>   其中,别名的作用是可以在用到这个类时直接使用别名,而不用再写全路径名了

4、写接口,并实现

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

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

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

5、测试是否搭建成功

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

[java]  view plain  copy <pre name="code" class="java">public class Test {       private static SqlSessionFactory sqlSessionFactory;              static{           Reader reader;           try {               //读取配置文件               reader = Resources.getResourceAsReader("config.xml");               //建立sqlSessionFactory               sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);           } catch (IOException e) {               e.printStackTrace();           }       }              public static void main(String[] args){           SqlSession sqlSession = sqlSessionFactory.openSession();           //getMapper中的参数为对应的接口类             IStudent iStudent = sqlSession.getMapper(IStudent.class);           //查找学号为9的学生,并打印             Student student = iStudent.findStudentById(9L);           System.out.println("id:" + student.getId());           System.out.println("name:" + student.getName());           System.out.println("age:" + student.getAge());           System.out.println("sex:" + student.getSex());           System.out.println("address:" + student.getAddress());                      //更新刚刚查出的学号为9的学生的姓名和地址             student.setName("关二爷");           student.setAddress("蜀国");           iStudent.updateStudent(student);           sqlSession.commit();       }   }

运行结果为:

再次运行结果为:

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

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

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

转载请注明原文地址: https://www.6miu.com/read-50428.html

最新回复(0)