浏览器报错 500
<? xml version ="1.0" encoding ="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.4//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" > < configuration > <!--配置分页插件的拦截器--> < plugins > < plugin interceptor ="com.github.pagehelper.PageInterceptor" > < property name ="helperDialect" value ="mysql" /> < property name ="reasonable" value ="true" /> </ plugin > </ plugins > <!--配置默认要使用的数据库环境--> < environments default ="development" > <!-- 配置数据库环境--> < environment id ="development" > <!--配置数据库的事务--> < transactionManager type ="JDBC" /> <!-- 配置链接数据库的相关参数--> < dataSource type ="POOLED" > < property name ="driver" value ="com.mysql.cj.jdbc.Driver" /> < property name ="url" value ="jdbc:mysql:///icake?serverTimezone=UTC & characterEncoding=utf8 & useSSL=false & rewriteBatchedStatements=true" /> < property name ="username" value ="root" /> < property name ="password" value ="xd0000" /> </ dataSource > </ environment > </ environments > <!--配置扫描的包路径,底层自动给包里的接口实现实例化对象--> < mappers > < package name ="com.imooc.icake.dao" /> </ mappers > </ configuration >
package
com.imooc.icake.dao;
import
com.imooc.icake.entity.Catalog;
import
org.apache.ibatis.annotations.*;
import
java.util.List;
public interface
CatalogDao {
/*批量插入*/
@Insert
(
"<script>"
+
"insert into catalog(title,pid,info) values"
+
"<foreach collection='list' item='catalog' separator=','>"
+
"(#{catalog.title},#{catalog.pid},#{catalog.info})"
+
"</foreach>"
+
"</script>"
)
//配置数据库自增的一些属性
@Options
(useGeneratedKeys =
true
,keyProperty =
"id"
)
void
batchInsert(List<Catalog> list);
/* 根据分类id删除*/
@Delete
(
"delete from catalog where id=#{id}"
)
void
delete(
int
id);
/*根据分类id查询分类*/
@Select
(
"select * from catalog where id=#{id}"
)
@Results
(id =
"all"
,value = {
@Result
(column =
"id"
,property =
"id"
,id =
true
),
@Result
(column =
"title"
,property =
"title"
),
@Result
(column =
"pid"
,property =
"pid"
),
@Result
(column =
"info"
,property =
"info"
),
@Result
(column =
"id"
,property =
"children"
,many =
@Many
(select =
"selectByPid"
))
})
Catalog select(
int
id);
/*根据分类的父id查询分类*/
@Select
(
"select * from catalog where pid=#{pid}"
)
@ResultMap
(
"all"
)
//因为子类不会自动查询它的子类
List<Catalog> selectByPid(
int
pid);
}package
com.imooc.icake.global;
import
org.apache.ibatis.io.Resources;
import
org.apache.ibatis.session.SqlSessionFactory;
import
org.apache.ibatis.session.SqlSessionFactoryBuilder;
import
java.io.IOException;
public class
DaoFactory {
private static
DaoFactory
daoFactory
;
private
SqlSessionFactory
sessionFactory
;
private
DaoFactory(){
/* 加载配置文件,获取sessionFactory*/
SqlSessionFactoryBuilder sessionFactoryBuilder =
new
SqlSessionFactoryBuilder();
try
{
sessionFactory
= sessionFactoryBuilder.build(Resources.
getResourceAsReader
(
"/mybatis.xml"
));
}
catch
(IOException e) {
e.printStackTrace();
}
}
/* 使用单例模式创建该类的实例对象*/
/*静态代码块:在执行该类时会先执行static静态代码块,进行初始化操作*/
public static
DaoFactory getInstence(){
if
(
daoFactory
==
null
)
daoFactory
=
new
DaoFactory();
return
daoFactory
;
}
/*创建一个传入泛型类Dao的实例对象*/
public
<
T
>
T
getDao(Class<
T
> tClass){
return
sessionFactory
.openSession(
true
).getMapper(tClass);
}
}package
com.imooc.icake.biz.impl;
import
com.imooc.icake.biz.CatalogBiz;
import
com.imooc.icake.dao.CatalogDao;
import
com.imooc.icake.entity.Catalog;
import
com.imooc.icake.global.DaoFactory;
import
java.util.List;
public class
CatalogBizImpl
implements
CatalogBiz {
/* 通过DAO工厂获取对应dao的实例对象*/
private
CatalogDao
catalogDao
= DaoFactory.
getInstence
().getDao(CatalogDao.
class
);
/* 批量添加分类*/
public void
add(List<Catalog> list) {
catalogDao
.batchInsert(list);
}
/* 根据id删除分类*/
public void
remove(
int
id) {
catalogDao
.delete(id);
}
/*获取id是10000的分类信息 (顶级分类主键的id)*/
public
Catalog getRoot() {
return
catalogDao
.select(
10000
);
}
}


15
收起
正在回答 回答被采纳积分+1
3. Java 数据库开发与实战应用
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星