写的不好,砖拍轻点...
mybatis一直没有发布release版本。所以spring也坐着看。但是spring还是必须用啊。
1. Pojo & mapper配置
view plaincopy to clipboardprint?
package cn.java.forum.domain;
import java.io.Serializable;
import java.util.Date;
public class People implements Serializable{
private static final long serialVersionUID = 1L;
private int id;
private String username;
private String password;
private String realName;
private Date registerTime;
@Override
public String toString() {
return "< id:"+id+", username:"+username+", password:"+password+", realName:"+realName
+", registerTime:"+registerTime.toLocaleString()+" >";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public Date getRegisterTime() {
return registerTime;
}
public void setRegisterTime(Date registerTime) {
this.registerTime = registerTime;
}
}
package cn.java.forum.domain;
import java.io.Serializable;
import java.util.Date;
public class People implements Serializable{
private static final long serialVersionUID = 1L;
private int id;
private String username;
private String password;
private String realName;
private Date registerTime;
@Override
public String toString() {
return "< id:"+id+", username:"+username+", password:"+password+", realName:"+realName
+", registerTime:"+registerTime.toLocaleString()+" >";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public Date getRegisterTime() {
return registerTime;
}
public void setRegisterTime(Date registerTime) {
this.registerTime = registerTime;
}
}
view plaincopy to clipboardprint?
<?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="cn.java.forum.domain.mapper.PeopleMapper">
<!--
<cache eviction="FIFO" flushInterval="30000" readOnly="true" size="512"></cache>
-->
<select id="allPeople" resultType="People">
select * from People
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<mapper namespace="cn.java.forum.domain.mapper.PeopleMapper">
<!--
<cache eviction="FIFO" flushInterval="30000" readOnly="true" size="512"></cache>
-->
<select id="allPeople" resultType="People">
select * from People
</select>
</mapper>
2. mapper接口
view plaincopy to clipboardprint?
package cn.java.forum.domain.mapper;
import java.util.List;
import cn.java.forum.domain.People;
public interface PeopleMapper {
List<People> allPeople();
}
package cn.java.forum.domain.mapper;
import java.util.List;
import cn.java.forum.domain.People;
public interface PeopleMapper {
List<People> allPeople();
}
3.service接口
view plaincopy to clipboardprint?
package cn.java.forum.domain.service;
import java.util.List;
import cn.java.forum.domain.People;
public interface PeopleService {
List<People> allPeople();
}
package cn.java.forum.domain.service;
import java.util.List;
import cn.java.forum.domain.People;
public interface PeopleService {
List<People> allPeople();
}
4. service实现,mapper经过注入。
view plaincopy to clipboardprint?
package cn.java.forum.domain.service.impl;
import java.util.List;
import cn.java.forum.domain.People;
import cn.java.forum.domain.mapper.PeopleMapper;
import cn.java.forum.domain.service.PeopleService;
public class PeopleServiceBean implements PeopleService{
/* 需要注入 */
private PeopleMapper mapper;
public PeopleMapper getMapper() {
return mapper;
}
public void setMapper(PeopleMapper mapper) {
this.mapper = mapper;
}
@Override
public List<People> allPeople() {
return mapper.allPeople();
}
}
package cn.java.forum.domain.service.impl;
import java.util.List;
import cn.java.forum.domain.People;
import cn.java.forum.domain.mapper.PeopleMapper;
import cn.java.forum.domain.service.PeopleService;
public class PeopleServiceBean implements PeopleService{
/* 需要注入 */
private PeopleMapper mapper;
public PeopleMapper getMapper() {
return mapper;
}
public void setMapper(PeopleMapper mapper) {
this.mapper = mapper;
}
@Override
public List<People> allPeople() {
return mapper.allPeople();
}
}
基本的代码完成之后。就是配置文件了。
---------------------------------------------------华丽的分割线---------------------------------------------------
1.完整的spring主配置文件,包含了事务,mapper,数据源等的配置
2.MyBatis的配置文件,暂时只配置了 别名 和 mapper
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN"
"
http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias type="cn.java.forum.domain.Grade" alias="Grade"/>
<typeAlias type="cn.java.forum.domain.People" alias="People"/>
<typeAlias type="cn.java.forum.domain.Response" alias="Response"/>
<typeAlias type="cn.java.forum.domain.Topic" alias="Topic"/>
</typeAliases>
<!-- spring配置之后 这些就可以省略了
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
</transactionManager>
<dataSource type="POOLED">
<property name="driver"
value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/forum" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments> -->
<mappers>
<mapper resource="cn/java/forum/domain/config/Grade.xml"/>
<mapper resource="cn/java/forum/domain/config/People.xml"/>
<mapper resource="cn/java/forum/domain/config/Response.xml"/>
<mapper resource="cn/java/forum/domain/config/Topic.xml"/>
</mappers>
</configuration>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN"
"
http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias type="cn.java.forum.domain.Grade" alias="Grade"/>
<typeAlias type="cn.java.forum.domain.People" alias="People"/>
<typeAlias type="cn.java.forum.domain.Response" alias="Response"/>
<typeAlias type="cn.java.forum.domain.Topic" alias="Topic"/>
</typeAliases>
<!-- spring配置之后 这些就可以省略了
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
</transactionManager>
<dataSource type="POOLED">
<property name="driver"
value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/forum" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments> -->
<mappers>
<mapper resource="cn/java/forum/domain/config/Grade.xml"/>
<mapper resource="cn/java/forum/domain/config/People.xml"/>
<mapper resource="cn/java/forum/domain/config/Response.xml"/>
<mapper resource="cn/java/forum/domain/config/Topic.xml"/>
</mappers>
</configuration>
3. service层的配置文件
4.最后,是启动spring的配置 WEB.XML
view plaincopy to clipboardprint?
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
ok 写一个servlet来测试(其实类也可以的。)。
view plaincopy to clipboardprint?
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.java.forum.domain.service.PeopleService;
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public TestServlet() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
PeopleService peopleService = (PeopleService) ctx.getBean("peopleService");
System.out.println("the list:"+peopleService.allPeople());
out.flush();
out.close();
}
public void init() throws ServletException {
}
}