jdbc mysql sql model_使用jdbc查询mysql数据库封装成对象列表并使用thyemeleaf循环取出遇到的坑...

最近在学习spring boot,想着用jdbc连接mysql数据库,查询取出数据封装成对象并返回一个列表,然后通过thyemeleaf取出展现给前端。这期间遇到了不少的坑。

文件目录如下:

38b167103b15

项目目录

1首先是pom.xml中引入依赖

org.springframework.boot

spring-boot-starter-jdbc

mysql

mysql-connector-java

runtime

org.springframework.boot

spring-boot-starter-thymeleaf

2然后是自建的application.yml中配置数据库信息

spring:

datasource:

username: root

password: 123456

url: jdbc:mysql://localhost:3306/scrapy_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

driver-class-name: com.mysql.cj.jdbc.Driver

thymeleaf:

cache: false

这里的url后面如果不加?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai会报错。

数据库中信息如下:

38b167103b15

mysql中数据

3编写与数据库对应的实体类person

public class Person {

private String name;

private String age;

private String sex;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAge() {

return age;

}

public void setAge(String age) {

this.age = age;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

@Override

public String toString() {

return "Person{" +

"name='" + name + '\'' +

", age=" + age +

", sex='" + sex + '\'' +

'}';

}

}

这里实体类里不能单独有有参构造函数,要么无参构造和有参构造都写出来要么都不写,否则会报错(曾经卡过我)

4编写Dao接口和实现方法

#Dao接口

public interface PersonDao {

List findAll();

}

#Dao实现方法

@Repository

public class PersonDaoImp implements PersonDao{

@Autowired

private JdbcTemplate jdbcTemplate;

@Override

public List findAll() {

String sql = "select * from person";

List query = this.jdbcTemplate.query(sql, new BeanPropertyRowMapper(Person.class));

return query;

}

}

这里的实现方法要通过@Repository添加到容器中

5编写service和实现方法

##接口

public interface PersonService {

List findAll();

}

##实现方法

@Service

public class PersonSerImp implements PersonService{

@Autowired

PersonDaoImp personDaoImp;

@Override

public List findAll() {

return personDaoImp.findAll();

}

}

这里的实现方法野要通过@Service加入到容器中!

6编写controller文件

@Controller

public class mysqlController {

@Autowired

PersonSerImp personSerImp;

@GetMapping("/mysql")

public String map(Model model){

List list = personSerImp.findAll();

model.addAttribute("list",list);

return "list";

}

这里的model.addAttribute("list",list);千万不要写成model.addAttribute("list","list")!!!!

7编写list.html

振振有词

#jz{ margin:0 auto; width:40%; height:50%; border:1px solid #ee1717; margin-top:100px

}

姓名年龄性别

8启动项目输入网址

38b167103b15

浏览器打开网址

感想:虽然只是一个很简单的功能,但是却折磨了我一天半,真的是see see easy,do do hard。不过当完成的那一刻还是很开心的,长路漫漫,还需努力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值