今天学习了mybatis整合Spring开发,做了一个mybatis+spring的小实例
(1)首先,创建数据库my,并在数据库my中创建表user
create database my; use my; create table user( id int(10) auto_increment, name varchar(64), level varchar(256), phone varchar(256), primary key(id) ); insert into user(id,name,level,phone) values(1,'a','a','1234555666');
(2)导入jar包
(3)在com.zk.pojo下创建实体类User.java
package com.zk.pojo; public class User { private int id; private String name; private String level; private String phone; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getLevel() { return level; } public void setLevel(String level) { this.level = level; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", level=" + level + ", phone=" + phone + "]"; } }
(4)创建dao层接口、实现类、mapper映射文件(UserMapper.java、UserMapperImpl.java、UserMapper.xml)
UserMapper.java
package com.zk.dao; import java.util.List; import com.zk.pojo.User; public interface UserMapper { List<User> getUser(User user); }
UserMapperImpl.java
package com.zk.dao; import java.util.List; import org.mybatis.spring.SqlSessionTemplate; import com.zk.pojo.User; public class UserMapperImpl implements UserMapper{ public SqlSessionTemplate sqlSession; @Override public List<User> getUser(User user) { // TODO Auto-generated method stub return sqlSession.selectList("com.zk.dao.UserMapper.getUserList",user); } public SqlSessionTemplate getSqlSession() { return sqlSession; } public void setSqlSession(SqlSessionTemplate sqlSession) { this.sqlSession = sqlSession; } }
UserMapper.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.zk.dao.UserMapper"> <select id="getUserList" resultType="User" parameterType="User"> SELECT * FROM `user` </select> </mapper>
(5)创建service层接口、实现类(UserService.java、UserServiceImpl.java)
UserService.java
package com.zk.service; import java.util.List; import com.zk.pojo.User; public interface UserService{ List<User> findUserList(User user) throws Exception; }
UserServiceImpl.java
package com.zk.service; import java.util.List; import com.zk.dao.UserMapper; import com.zk.pojo.User; public class UserServiceImpl implements UserService{ private UserMapper usermapper; @Override public List<User> findUserList(User user) throws Exception { // TODO Auto-generated method stub try { return usermapper.getUser(user); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); throw e; } } public UserMapper getUsermapper() { return usermapper; } public void setUsermapper(UserMapper usermapper) { this.usermapper = usermapper; } }
(6)配置config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <package name="com.zk.pojo"/> </typeAliases> </configuration>
(7)配置ApplicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd"> <!-- 配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/my"/> <property name="username" value="root"/> <property name="password" value="123456"/> </bean> <!-- 获得sqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 映射数据源 --> <property name="dataSource" ref="dataSource"/> <!-- 映射mybatis核心配置文件 --> <property name="configLocation" value="config/config.xml"/> <!-- 映射mapper文件 --> <property name="mapperLocations"> <list> <value>classpath:com/zk/dao/**/*.xml</value> </list> </property> </bean> <!-- 获得sqlSession --> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean> <bean id="UserMapper" class="com.zk.dao.UserMapperImpl"> <property name="sqlSession" ref="sqlSession"/> </bean> <bean id="UserService" class="com.zk.service.UserServiceImpl"> <property name="usermapper" ref="UserMapper"/> </bean> </beans>
(8)测试类Main
package test; import java.util.ArrayList; import java.util.List; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.zk.pojo.User; import com.zk.service.UserService; public class test { public static void main(String[]args) throws Exception { ApplicationContext ac=new ClassPathXmlApplicationContext("config/applicationContext.xml"); UserService us=(UserService) ac.getBean("UserService"); List<User> user1=new ArrayList<User>(); User user=new User(); user1=us.findUserList(user); System.out.println(user1); } }
运行结果图如下:
程序结构图如下: