idea整合jsp和mybatis (mybatis使用我的整理)

我的整理mybatis使用

1,引入starter-web,mysql-connector-java,mybatis-spring-boot-starter(1.3.1-2.1.22,数据库表准备好,配置好4个常用配置。
spring.datasource.url=jdbc:mysql://localhost:3306/test
username,password 和 driver-class-name=com.mysql.jdbc.Driver
3,pojo准备好,并制定get,set
@Alias(value = "user")//指定别名
public class User {}
4,接口dao指定好。
@Mapper //@Repository 一样
public interface MyBatisUserDao {
	public User getUser(Long id);
}
5,classpath下准备好mapper
<?xml ?>
<!DOCTYPE mapper>
<mapper namespace="com.*.MyBatisUserDao">//路径写对
    <select id="getUser" parameterType="long" resultType="user">//返回user,与@Alias对应
        select id, user_name as userName, sex, note from t_user where id = #{id} //userName和pojo中一样
    </select>
</mapper>
6,基本配置
#mapper位置
mybatis.mapper-locations=classpath:*.xml
#jopo位置
mybatis.type-aliases-package=com.*.pojo
7,boot主类,加扫描接口
@MapperScan(
        //指定扫描包
        basePackages = "com.XX.*",
        annotationClass = Mapper.class  //与接口dao上注解一致
)
8,controller测试

为了怕翻车,比如可以建testj这样的项目:

mysql和jsp pom

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

==========================mysql=================================

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>

===========================================================

============================JSP===============================
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <scope>provided</scope>
        </dependency>

===========================================================

创建jsp文件 和数据库

CREATE TABLE `t_user` (
  `id` int(12) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(60) NOT NULL,
  `note` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
src/main/webapp/WEB-INF/jsp/user/details.jsp

<%@ page pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
    <head>
        <title>用户详情</title>
    </head>
    <body>
    
        <center>
            <table border="1">
                <tr>
                    <td>标签</td>
                    <td>值</td>
                </tr>
                <tr>
                    <td>用户编号</td>
                    <td><c:out value="${user.id}"></c:out></td>
                </tr>
                <tr>
                    <td>用户名称</td>
                    <td><c:out value="${user.userName}"></c:out></td>
                </tr>
                <tr>
                    <td>用户备注</td>
                    <td><c:out value="${user.note}"></c:out></td>
                </tr>
            </table>
        </center>
    </body>
</html>

jsp配置 ,选择项目结构 ctrl+alt+shift+s

  • 在facets——web——web Resource Directory 选择到 webapp目录。deployment Root 为 默认 /
  • 在右下角会提示创建 artifacts 点击确定。一切都默认。(会创建 项目名:Web exploded)

application.properties


spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

#数据库配置。这样配置为了适应最新的数据库
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false

#可以不配置数据库驱动,Spring Boot会自己发现
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.username=root
spring.datasource.password=123456


#mybatis配置
mybatis.mapper-locations=classpath:mapper/*.xml 
mybatis.type-aliases-package=com.my.testj

controller

  • user/details 将会拼接 :/WEB-INF/jsp/user/details.jsp
  • 我们指定的 实在webapp目录,将会在这个目录去找。webapp是和 java 和resource 目录同级
@Controller
@RequestMapping("/user")
public class UserController {

	@Autowired
	private UserDao userDao = null;

	// 展示用户详情
	@RequestMapping("details")
	public ModelAndView details(Long id) {
		// 访问模型层得到数据
		User user = userDao.getUser(id);
		/*User user=new User();*/
		/*user.setId(111L);
		user.setUserName("张三");*/
		// 模型和视图
		ModelAndView mv = new ModelAndView();
		// 定义模型视图
		mv.setViewName("user/details");
		// 加入数据模型
		mv.addObject("user", user);
		// 返回模型和视图
		return mv;
	}

	@RequestMapping("/detailsForJson")
	public ModelAndView detailsForJson(Long id) {
		// 访问模型层得到数据
		//User user = userService.getUser(id);
		User user=new User();
		user.setId(111L);
		user.setUserName("张三");
		// 模型和视图
		ModelAndView mv = new ModelAndView();
		// 生成JSON视图
		MappingJackson2JsonView jsonView = new MappingJackson2JsonView();
		mv.setView(jsonView);
		// 加入模型
		mv.addObject("user", user);
		return mv;
	}
}
  • 此时jsp已经搭建完毕。

搭建mybatis

#mybatis配置
mybatis.mapper-locations=classpath:mapper/*.xml 
mybatis.type-aliases-package=com.my.testj

mapper.xml

src/main/resources/mapper/userMapper.xml  #注意这里放的 resources目录下

<?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.hua.testj.UserDao">  #注意这里指定的dao路径

	<select id="getUser" resultType="user">
		select id, user_name as userName, note from t_user where id = #{id}
	</select>
	
	<select id="findUsers" resultType="user">
	   select id, user_name as userName, note from t_user
	   <where>
	        <if test="userName != null"> and user_name like concat('%', #{userName}, '%')</if>
	        <if test="note != null"> and note like concat('%', #{note}, '%')</if>
	   </where>
	</select>
	
</mapper>

dao

@Mapper
public interface UserDao {
	
	User getUser(Long id);

	List<User> findUsers(@Param("userName") String userName, @Param("note") String note);
}

  • mybatis.type-aliases-package=com.my.testj 注意,这个目录 和下对应

pojo

@Alias("user")
public class User {
	
	private Long id;
	private String userName;
	private String note;
}

mian

@SpringBootApplication
public class TestjApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestjApplication.class, args);
    }

}

/*@SpringBootApplication(scanBasePackages = "com.springboot.chapter9")
@MapperScan(basePackages="com.springboot.chapter9", annotationClass = Mapper.class)*/
  • 注意,默认的扫描是 mapper 可以不用配置。
如果配置:Repository
@Repository
public interface UserDao {}

记得改:annotationClass = Repository.class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值