2 将mybatis配置到springmvc中
为了更方便的连接数据库,将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中的内容如下
<!-- 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
/**
* 标识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) 数据库连接参数 (这个根据自己本地的库的名字和端口 来自己写)
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
<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类
//Alias是mybatis给当前model类起的别名 typeAlias
@Alias("Student")
public class Student {
private int id;
private String name;
private int age;
private String teacher;
3)StudentController类
@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
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
@JYBatis
public interface StudentDao {
public void insert(Student student);
}
5) 最后是mybatis的xml文件 StudentMapper.xml
<?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>
2 将mybatis配置到springmvc中的更多相关文章
- Mybatis配置映射文件中parameterType的用法小结
原创: 在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配 ...
- SpringMVC中数据转换
SpringMVC中接收到的数据都是String形式,然后再根据反射机制将String转换成对应的类型.如果此时想接收一个Date类型,那么我们可以定义一个转换器来完成. 例如,我们有下面的Emp类: ...
- 使用IDEA配置Maven + SpringMVC + Mybatis 【一步一步踩坑详细配置完成】
PS:初学,想使用Maven配置一个SpringMVC的开发环境,照着网上的各种图文解说,配置了好久都没成功,有些写的不够详细,有些只有写一半,走了不少弯弯绕绕,踩了不少的坑,此文将正确配置成功的步骤 ...
- Maven配置Spring+SpringMVC+MyBatis(3.2.2)Pom 以及 IntelliJ IDEA 怎样打开依赖视图
Maven配置Spring+SpringMVC+MyBatis(3.2.2)Pom 配置原则: 利用依赖,将所需的jar包加载到project中. 先依赖主要jar包 Spring + Spring ...
- SSM框架的配置Spring+Springmvc +Mybatis
ssm框架是由spring mvc +spring+mybatis组成 快速阅读 通过spring的配置文件spring.xml,在servlet中指定spring mvc的配置文件spring-mv ...
- 第五节 关于SpringMVC中Ajax的配置和应用[下午]
成熟,不是学会表达,而是学会咽下,当你一点一点学会克制住很多东西,才能驾驭好人生. 还有一周,祥云19就算结算了,一个半月的相处希望,胖先生算一个合格的老师 小白,小蔡,2婷婷,小猴,小恒,小崔,小龙 ...
- Springmvc中配置Quartz使用,实现任务实时调度。
菜鸡的自我修炼,第一次接触quartz,做个记录.-------jstarseven 最近在项目中,第一次在springmvc中配置实用quartz,深刻的感受到quartz带来的方便,顺手做个记录. ...
- JavaEE开发之SpringMVC中的路由配置及参数传递详解
在之前我们使用Swift的Perfect框架来开发服务端程序时,聊到了Perfect中的路由配置.而在SpringMVC中的路由配置与其也是大同小异的.说到路由,其实就是将URL映射到Java的具体类 ...
- Maven-SSM项目pom.xml配置以及springmvc配置以及mybatis配置及web.xml配置
一.Maven本地仓库的pom.xml配置 (全部是mysql数据库) <project xmlns="http://maven.apache.org/POM/4.0.0" ...
随机推荐
- Iframe刷新页面
window.parent.frames["name"].location="url";
- Python实战之SocketServer模块
文章出处:http://www.cnblogs.com/wupeiqi/articles/5040823.html SocketServer内部使用 IO多路复用 以及 "多线程" ...
- M-自适应宽高样式
1 绝对定位 position: absolute; top: 0px; bottom: 0px; left: 0px; width: 100%; overflow: hidden;
- HDU2282 Chocolate KM算法
第一次做这样的题,其中有几个细节是反复思考反复调试,最后一A的,ORZ,又加深了对KM算法的理解.能不参考网上的题解,而是平静下来思考,参透,最后敢于尝试.....真的很重要,以后遇到才会有更深的印象 ...
- 用html+css+js做打地鼠小游戏
html 代码 first.html <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- C#一款比较美观的验证码
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System. ...
- 第三章 MySQL高级查询(一)
第三章 MySQL高级查询(一) 一.SQL语言的四个分类 1. DML(Data Manipulation Language)(数据操作语言):用来插入,修改和删除表中的数据,如INSE ...
- jquery系列教程4-事件操作全解
点击打开: jquery系列教程1-选择器全解 jquery系列教程2-style样式操作全解 jquery系列教程3-DOM操作全解 jquery系列教程4-事件操作全解 jquery系列教程5-动 ...
- 前端笔记----jquery入门知识点总结
一.jquery的加载方法 $(document).ready(function(){js代码}); $(function(){js代码});(一般使用这个); 注意点1:使用jquery必须先导入函 ...
- win10 uwp 车表盘 径向规
车表盘就是有刻度的圆盘加上针,这个控件可以直观让用户知道当前的速度或其他 看名字不知道是什么,我就放一张图 使用很简单,在Nuget,Radial Gauge 要使用大神做的,简单,在使用我们需要在N ...