1. 创建表T_USER
create table T_USER ( id NUMBER not null, user_name VARCHAR2(50) not null, user_pwd VARCHAR2(256), user_flag VARCHAR2(3) not null, pwd_update DATE, creator VARCHAR2(20) default 'SYSTEM', editor VARCHAR2(20) default 'SYSTEM', cdate DATE default SYSDATE, edate DATE default SYSDATE );
2. 创建springboot项目
3 . 查看pom.xml文件
增加程序中需要用到Oracle驱动包,c3p0数据源包,json包
4. 创建各级目录
5. 设置application.properties配置文件及mybatis-config.xml
mybatis-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> <!--todo 配置全局属性 --> <settings> <!--todo 使用jdbc的getGeneratedKeys 获取数据库自增主键值--> <setting name="useGeneratedKeys" value="true"/> <!-- 使用列别名替换为 默认:true--> <setting name="useColumnLabel" value="true"/> <!-- 开启驼峰命名转换:Table(create time)-> Entity(createTime)--> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration>
6. 创建数据源类DataSourceConfiguration.java
@Configuration public class DataSourceConfiguration { @Value("${jdbc.driver}") private String jdbcDriver; @Value("${jdbc.url}") private String jdbcUrl; @Value("${jdbc.user}") private String userName; @Value("${jdbc.password}") private String passWord; @Bean(name="dataSource") public DataSource getDataSource() throws PropertyVetoException { ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setDriverClass(jdbcDriver); dataSource.setJdbcUrl(jdbcUrl); dataSource.setUser(userName); dataSource.setPassword(passWord); dataSource.setAutoCommitOnClose(false); return dataSource; } }
7. 创建SqlSessionFactoryConfiguration.java
@Configuration public class SqlSessionFactoryConfiguration { @Value("${mybatis_config_file}") private String mybatisConfigPath; @Value("${mapper_path}") private String mapperXMLPath; @Value("${entity_package}") private String pojoPackage; @Autowired private DataSource dataSource; @Bean(name="sqlSessionFactory") public SqlSessionFactoryBean createSqlSessionFactoryBean() throws IOException { SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setConfigLocation(new ClassPathResource(mybatisConfigPath)); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); String packMapperXMLPath = PathMatchingResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + mapperXMLPath; sqlSessionFactoryBean.setMapperLocations(resolver.getResources(packMapperXMLPath)); sqlSessionFactoryBean.setTypeAliasesPackage(pojoPackage); sqlSessionFactoryBean.setDataSource(dataSource); return sqlSessionFactoryBean; } }
8. 创建数据库对应实体类pojo
package com.hansonding.pojo; import java.util.Date; public class User { private Integer id; private String userName; private String passWord; private String userFlag; private Date pwdUpdate; public Integer getId() { return id; } public void setId(Integer 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 getUserFlag() { return userFlag; } public void setUserFlag(String userFlag) { this.userFlag = userFlag; } public Date getPwdUpdate() { return pwdUpdate; } public void setPwdUpdate(Date pwdUpdate) { this.pwdUpdate = pwdUpdate; } }
9. 创建数据库实体类对应的mapper接口
package com.hansonding.mapper; import com.hansonding.pojo.User; import java.util.List; public interface UserMapper { List<User> getAllUser(); User getUserById(Integer id); int insert(User user); int deleteById(Integer id); int updateById(User user); }
10. 创建mapper接口对应的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.hansonding.mapper.UserMapper"> <resultMap id="UserResultMap" type="com.hansonding.pojo.User"> <result column="ID" property="id" jdbcType="INTEGER"/> <result column="USER_NAME" property="userName" jdbcType="VARCHAR"/> <result column="USER_PWD" property="passWord" jdbcType="VARCHAR"/> <result column="USER_FLAG" property="userFlag" jdbcType="VARCHAR"/> <result column="PWD_UPDATE" property="pwdUpdate" jdbcType="TIMESTAMP"/> </resultMap> <select id="getUserById" resultMap="UserResultMap" parameterType="java.lang.Integer"> select id,user_name, user_pwd, user_flag, pwd_update from t_user where id = #{id,jdbcType=INTEGER} </select> <insert id="insert" parameterType="com.hansonding.pojo.User"> insert into t_user (id, user_name, user_pwd, user_flag, pwd_update) values (#{id}, #{userName}, #{passWord}, #{userFlag}, #{pwdUpdate}) </insert> <delete id="deleteById" parameterType="java.lang.Integer"> delete from t_user where id = #{id} </delete> <update id="updateById" parameterType="com.hansonding.pojo.User"> update t_user <set> <if test="userName!=null"> USER_NAME = #{userName}, </if> <if test="passWord!=null"> USER_PWD = #{passWord}, </if> <if test="userFlag!=null"> USER_FLAG = #{userFlag}, </if> <if test="pwdUpdate!=null"> PWD_UPDATE = #{pwdUpdate}, </if> </set> where id = #{id} </update> <select id="getAllUser" resultType="com.hansonding.pojo.User"> SELECT id, user_name, user_pwd, user_flag, pwd_update FROM t_user </select> </mapper>
11. 创建service接口
package com.hansonding.service; import com.hansonding.pojo.User; import java.util.List; public interface UserService { User queryUserById(Integer id); int insert(User user); int updateUser(User user); int deleteUser(Integer id); List<User> getAllUser(); }
12. 实现service接口类
package com.hansonding.service.Imp; import com.hansonding.mapper.UserMapper; import com.hansonding.pojo.User; import com.hansonding.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User queryUserById(Integer id) { return userMapper.getUserById(id); } @Override public int insert(User user) { return userMapper.insert(user); } @Override public int updateUser(User user) { return userMapper.updateById(user); } @Override public int deleteUser(Integer id) { return userMapper.deleteById(id); } @Override public List<User> getAllUser() { return userMapper.getAllUser(); } }
13. 创建controller的java类
package com.hansonding.controller; import com.alibaba.fastjson.JSONObject; import com.hansonding.pojo.User; import com.hansonding.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping(value = "/queryUserById", method = RequestMethod.GET) public JSONObject getUserById(@RequestParam(name="id") Integer id){ User user = userService.queryUserById(id); JSONObject json = new JSONObject(); json.put("result",user); return json; } @RequestMapping(value = "/insertUser",method = RequestMethod.POST) public int inserUser(@RequestBody User user){ return userService.insert(user); } @RequestMapping(value = "/updateUser", method = RequestMethod.POST) public void updateUser(@RequestBody User user){ userService.updateUser(user); } @RequestMapping(value = "/deleteUser", method = RequestMethod.POST) public int deleteUser(@RequestParam(name="id") Integer id){ return userService.deleteUser(id); } @RequestMapping(value = "/getAllUser",method = RequestMethod.POST) public JSONObject getAllUser(){ JSONObject json = new JSONObject(); List<User> listUser = userService.getAllUser(); json.put("userList",listUser); return json; } }
14. SpringBootApplication类调用测试
package com.hansonding; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.hansonding.mapper") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }