2018-6-29 springMvc与mybatis整合初步接触

 第一步我们要完成我们的数据访问层(就是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>


不想写了,今天先到这里吧




猜你喜欢

转载自blog.csdn.net/qq_40434646/article/details/80860932
今日推荐