mybatis简介
mybatis 是一款优秀的持久层框架,它支持定制化 sql、存储过程以及高级映射。mybatis 避免了几乎所有的 jdbc 代码和手动设置参数以及获取结果集。mybatis 可以使用简单的 xml 或注解来配置和映射原生信息,将接口和 java 的 pojos(plain old java objects,普通的 java对象)映射成数据库中的记录。
为了更方便的连接数据库,将mybatis配置到springmvc中
1). 首先是jar包 多了3个jar druid 这个是阿里的数据库连接包 mybatis和 mybatis-spring
2) 然后是项目目录
3)在web.xml中 加上一个spring的配置文件
<context-param></context-param>
元素含有一对参数名和参数值,用作应用的servlet上下文初始化参数。参数名在整个web应用中必须是惟一的。设定web应用的环境参数(context)
4)
spring-mvc的内容不变,spring-mybatis中的内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<!-- mybatis配置 这个就是spring和mybatis的整合 也就是spring-mybatis jar-->
<bean id= "mysqlsqlsessionfactory" class = "org.mybatis.spring.sqlsessionfactorybean" >
<!--数据库 多数据源配置多个-->
<property name= "datasource" ref= "mysqldatasource" />
<!-- 自动扫描mapping.xml文件 -->
<!-- 自动扫描entity目录, 省掉xml里的手工配置
该属性可以给包中的类注册别名,注册后可以直接使用类名,而不用使用全限定的类名-->
<property name= "typealiasespackage" value= "com.springmvc.model" />
<!-- mysqlsqlsessionfactory会自动扫描该路径下的所有文件并解析。-->
<property name= "mapperlocations" >
<list>
<value>classpath:/mybatis/*mapper.xml</value>
</list>
</property>
</bean>
<!--会查找类路径下的映射器并自动将它们创建成mapperfactorybean -->
<bean class = "org.mybatis.spring.mapper.mapperscannerconfigurer" >
<property name= "sqlsessionfactorybeanname" value= "mysqlsqlsessionfactory" ></property>
<!-- 为映射器接口文件设置基本的包路径 -->
<property name= "basepackage" value= "com.springmvc.dao" />
<!-- 该属性起到一个过滤的作用,设置该属性,那么mybatis的dao接口 只有包含该注解 才会被扫描-->
<property name= "annotationclass" value= "com.springmvc.base.jybatis" />
</bean>
|
5) 自定义的jybatis
1
2
3
4
5
6
7
8
9
10
11
12
|
/**
* 标识mybatis的dao,方便{@link org.mybatis.spring.mapper.mapperscannerconfigurer}的扫描�??
*
* 总的来说就是 target(接口) retention(java-class后依旧可用) document(包含在javadoc中) component(spring扫描)
*/
@retention (retentionpolicy.runtime) //注解的生命周期 这个是最长的 jvm加载class文件之后,仍然存在
@target (elementtype.type) //注解修改目标 (这是个接口) 接口、类、枚举、注解
@documented //该注解将被包含在javadoc中
@component //@component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
public @interface jybatis {
string value() default "" ;
}
|
6) 数据库连接参数 (这个根据自己本地的库的名字和端口 来自己写)
1
2
3
4
|
db.username=root
db.password= 123456
db.url=jdbc:mysql: //localhost:3306/test?useunicode=true&characterencoding=utf-8
db.dirverclass=com.mysql.jdbc.driver
|
这样mybatis就整合到springmvc中了,下面做一个例子,往mysql中插入一条数据
1) 首先是jsp页面
还在login.jsp中写一个form
1
2
3
4
5
6
|
<form action= "spring/student/testcontroller" method= "post" >
<br />用户名: <input type= "text" name= "name" > <br />
<br />年龄: <input type= "text" name= "age" > <br />
<br /> 老师: <input type= "text" name= "teacher" >
<br /> <input type= "submit" value= "登录" >
</form>
|
2) model类 然后写一个student model类
1
2
3
4
5
6
7
|
//alias是mybatis给当前model类起的别名 typealias
@alias ( "student" )
public class student {
private int id;
private string name;
private int age;
private string teacher;
|
3)studentcontroller类
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@controller
@requestmapping ( "/spring/student" )
public class studentcontroller {
@resource
private studentservice ss;
@requestmapping (value= "/testcontroller" )
public string topage(student s){
system.out.println(s.tostring());
s.setid( 33 );
ss.save(s);
return "success" ;
}
}
|
4) studentservice studentserviceimpl studentdao
1
2
3
4
5
6
7
8
9
10
11
12
|
public interface studentservice {
public void save(student student);
}
//studentserviceimpl 这里要加上注解
@service ( "studentservice" )
public class studentserviceimpl implements studentservice {
@autowired
private studentdao studentdao;
@override
public void save(student student) {
studentdao.insert(student);
}
|
studentdao 要加上自定义注解 这里spring会自动为其创建bean
1
2
3
4
|
@jybatis
public interface studentdao {
public void insert(student student);
}
|
5) 最后是mybatis的xml文件 studentmapper.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<?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= "com.springmvc.dao.studentdao" >
<!-- com.jy.entity.system.account.account -->
<!-- com.jy.entity.oa.leave.leave -->
<resultmap id= "base" type= "student" > </resultmap>
<select id= "find" resultmap= "base" parametertype= "student" >
select t.* from user1 t where 1 = 1
< if test= "id != null and id!='' " >
and t.id=#{id}
</ if >
</select>
<select id= "count" resulttype= "int" parametertype= "student" >
select count(*) from user1 t where 1 = 1
</select>
<insert id= "insert" parametertype= "student" >
<![cdata[
insert into user1(
id,
age,
name,
teacher
) values (
#{id},
#{age},
#{name},
#{teacher}
)
]]>
</insert>
<update id= "updateuserassetinfo" parametertype= "map" >
update user1
set
id=#{id},
age=#{age},
name=#{name},
teacher=#{teacher}
where id=#{id}
</update>
</mapper>
|
总结
以上所述是小编给大家介绍的如何将mybatis配置到springmvc中,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.cnblogs.com/studyitskill/archive/2017/11/15/7832041.html