第一步我们要完成我们的数据访问层(就是MyBatis要完成的东西)
1、首先要保证我们的访问的数据库能连接上,我们需要配置自己的database.propreties文件:
(红色字体部分需要注意,要访问的是自己的数据库,自己的服务器名称,用户名和密码也要是自己的)
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@10.2.4.34:1521:ORCLe
user=scott
password=tiger
minIdle=45
maxIdle=50
initialSize=5
maxActive=100
maxWait=100
removeAbandonedTimeout=180
removeAbandoned=true
2、我们来到我们项目的dao下面创建NewsInfoMapper.xml配置文件和NewsInfoMapper.java 接口:
在NewsInfoMapper.xml中,我们需要些我们的SQL语句,对数据进行操作,这里只对插入操作进行说明: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.shop.dao.NewsInfoMapper">
<resultMap id="BaseResultMap" type="com.shop.pojo.NewsInfo">
<id column="id" jdbcType="DECIMAL" property="id" />
<result column="title" jdbcType="VARCHAR" property="title" />
<result column="content" jdbcType="VARCHAR" property="content" />
<result column="buildDate" jdbcType="OTHER" property="buildDate" />
</resultMap>
<sql id="Base_Column_List">
"id", "title", "content", "buildDate"
</sql>
<!--插入操作 -->
<insert id="insertSelective" parameterType="com.shop.pojo.NewsInfo">
insert into "NEWSINFO"
<trim prefix="(" suffix=")" suffixOverrides=",">
"id",
<if test="title != null">
"title",
</if>
<if test="content != null">
"content",
</if>
<if test="buildDate != null">
"buildDate",
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
seq.nextval,
<if test="title != null">
#{title,jdbcType=VARCHAR},
</if>
<if test="content != null">
#{content,jdbcType=VARCHAR},
</if>
<if test="buildDate != null">
#{buildDate,jdbcType=OTHER},
</if>
</trim>
</insert>
</mapper>
接着在NewsInfoMapper.java 接口中写与id名相同的方法
//动态添加
int insertSelective(NewsInfo record);
到这里,数据访问的操作算是完成了。
第二步我们要完成的是业务逻辑层的工作
1、首先是在我们的Service包下创建我们的NewsService.java接口,并在接口中写与NewsInfoMapper.java中同名的方法:
//动态添加
int insertSelective(NewsInfo record);
2、接下就是在Service.Impl包下创建我们的业务逻辑层的实现方法:
@Service("newsService")
public class NewsServiceImpl implements NewsService {
@Autowired
private NewsInfoMapper newsInfoMapper;
@Override
public int insertSelective(NewsInfo record) {
//调用数据访问层
return newsInfoMapper.insertSelective(record);
}
}
到了这里业务逻辑层的工作也完成了
第三步我们要实现的是后端控制的操作
在Controller包下创建我们的类,具体代码如下:
(注解要记得导包,)
@Controller
class NewsController {
@Autowired
private NewsService newsService;
/*后端控制器Controller中查找对应的方法(通过@RequestMapping("/showNewsAdd")查找)
-》就可以执行Java程序代码了*/
@RequestMapping("/showNewsAdd")
public String showNewsAdd() {
return "addNews";//return /WEB-INF/ page
}
@RequestMapping("/addNewsSave")
public void addNewsSave(NewsInfo newsInfo,HttpServletResponse response) throws IOException {
int n=newsService.insertSelective(newsInfo);
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
response.getWriter().print(
"<script>alert('添加成功');location.href='showNewsList';</script>");
}
}
最后就创建一些jsp文件,并将它们放到/WEB-INF/目录下即可,jsp的代码如下:
首先是addNews.jsp的代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!--视图层 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加新闻</title>
<script src=
"${pageContext.request.contextPath}/statics/calendar/WdatePicker.js"></script>
</head>
<body>
<form action="addNewsSave" method="post">
新闻标题:<input name="title"/><br/> <br/>
新闻内容:<textarea rows="7" cols="30" name="content"></textarea><br/>
新闻时间:<input name="buildDate"
onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"
readonly="readonly">
<input type="submit" value="添加新闻"/> <br/>
</form>
</body>
</html>
不想写了,今天先到这里吧