2 将mybatis配置到springmvc中

为了更有利于的接连数据库,将mybatis配置到springMVC中

1).  首先是jar包    多了3单jar  druid 这个是阿里的数据库连接包    
 mybatis和 mybatis-spring  

MyBatis 1

 

2)  然后是种类目录

MyBatis 2

 

3)在web.xml中 加上一个spring的部署文件

<context-param></context-param>元素含有一对参数名为及参数值,用作应用之servlet上下文初始化参数。参数叫作于整个Web应用中得是独一无二的。设定web应用之环境参数(context)

MyBatis 3

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 4

 

 

/**
* 标识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页面  

MyBatis 5

 

 还于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"&gt;
<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>

 

 

 

网站地图xml地图