spring+maven+freemarker+servlet项目连接数据库


pom.xml依赖的jar包

<dependencies>
	<!-- spring框架jar包 -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context</artifactId>
		<version>4.3.12.RELEASE</version>
	</dependency>
	<!-- 用于连接数据库的jar包 -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-jdbc</artifactId>
		<version>4.3.12.RELEASE</version>
	</dependency>
	<!-- 使用web项目的jar包 -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-web</artifactId>
		<version>4.3.12.RELEASE</version>
	</dependency>
	<!-- 数据库的jar包 -->
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>5.1.26</version>
	</dependency>
	<!-- freemarker的jar包 -->
	<dependency>
		<groupId>org.freemarker</groupId>
		<artifactId>freemarker</artifactId>
		<version>2.3.23</version>
	</dependency>
	<!-- jap使用的标签库的jar包 -->
	<dependency>
		<groupId>jstl</groupId>
		<artifactId>jstl</artifactId>
		<version>1.2</version>
	</dependency>
	<dependency>
		<groupId>taglibs</groupId>
		<artifactId>standard</artifactId>
		<version>1.1.2</version>
	</dependency>
</dependencies>

spring.xml文件配置

扫描注解
<context:component-scan base-package="lesson02"></context:component-scan>
读取properties文件
<context:property-placeholder location="classpath:/lesson02/jdbc/jdbcoracle.properties"/>

在web.xml配置以下内容

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name>spring_web</display-name>
  <!--上下文参数
	spring.xml配置文件所在的位置
	<param-name>contextConfigLocation</param-name> 参数名为contextConfigLocation写死
  -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring.xml</param-value>
  </context-param>
  <!-- 
	该监听器是ServletContext(相当于jsp中的application)的生命周期
	Tomcat启动时  contextInitialized 用于创建spring的容器WebApplicationContext 不需要new ClassPathXmlApplicationContext("lesson02/cycle/spring.xml");
	tomcat关闭时  contextDestroyed 调用容器的close的方法 关闭
  -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <!-- freemarker映射  -->
  <servlet>
    <servlet-name>freemarker</servlet-name>
    <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
    <init-param>
      <param-name>TemplatePath</param-name>
      <param-value>/</param-value>
    </init-param>
    <init-param>
      <param-name>NoCache</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>ContentType</param-name>
      <param-value>text/html;UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>template_update_delay</param-name>
      <param-value>0</param-value>
    </init-param>
    <init-param>
      <param-name>default_encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>number_format</param-name>
      <param-value>0.##</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>freemarker</servlet-name>
    <url-pattern>*.ftl</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <description></description>
    <display-name>NewsController</display-name>
    <servlet-name>NewsController</servlet-name>
    <servlet-class>cn.et.web.controller.NewsController</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>NewsController</servlet-name>
    <url-pattern>/NewsController</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>AddService</display-name>
    <servlet-name>AddService</servlet-name>
    <servlet-class>cn.et.web.controller.AddService</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AddService</servlet-name>
    <url-pattern>/AddService</url-pattern>
  </servlet-mapping>
</web-app>

JdbcTemplate的实例(使用Java创建)

package cn.et.web.conf;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

@Configuration
public class MyConf {
    @Value("${url}")
    private String url;
    @Value("${driverClass}")
    private String driverClassName;
    @Value("${username1}")
    private String userName;
    @Value("${password}")
    private String password;
    
    @Bean
    public JdbcTemplate jdbcTemplate(DataSource dataSource){
        return new JdbcTemplate(dataSource);
    }
    
    @Bean
    public DataSource dataSouce(){
        DriverManagerDataSource dmds=new DriverManagerDataSource();
        dmds.setUrl(url);
        dmds.setDriverClassName(driverClassName);
        dmds.setUsername(userName);
        dmds.setPassword(password);
        return dmds;
    }
}


实例

package cn.et.web.entity;


public class CC {
    private String c1;
    private String c2;
    public String getC1() {
        return c1;
    }
    public void setC1(String c1) {
        this.c1 = c1;
    }
    public String getC2() {
        return c2;
    }
    public void setC2(String c2) {
        this.c2 = c2;
    }
}




添加的servlet(调用service层)

package cn.et.web.controller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import cn.et.web.service.NewsService;

/**
 * Servlet implementation class AddService
 */
public class AddService extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AddService() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	    WebApplicationContext ac=WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
        NewsService ns=(NewsService)ac.getBean("newsServiceImpl");
	    request.setCharacterEncoding("UTF-8");
	    response.setContentType("text/html;charset=UTF-8");
	    String c1=request.getParameter("c1");
		String c2=request.getParameter("c2");
		request.setAttribute("c1", c1);
		request.setAttribute("c2", c2);
        ns.add(c1, c2);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

查询的servlet (调用service层)   servlet是由tomcat实例化的 tomcat不认识spring中的注解

package cn.et.web.controller;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import cn.et.web.entity.CC;
import cn.et.web.service.NewsService;

/**
 * Servlet implementation class NewsController
 */
public class NewsController extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public NewsController() {
        super();
        // TODO Auto-generated constructor stub
    }

	
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		WebApplicationContext ac=WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
		NewsService ns=(NewsService)ac.getBean("newsServiceImpl");
		String name=request.getParameter("temp");
		if(name==null){
		    name="";
		}
		request.setAttribute("name", name);
		List<CC> queryNewsByContent = ns.queryNewsByContent(name);
		request.setAttribute("newsList", queryNewsByContent);
		request.getRequestDispatcher("/index.jsp").forward(request,response);
	
	}

	
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

service层(调用到层)

package cn.et.web.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.et.web.dao.NewsDao;
import cn.et.web.entity.CC;
import cn.et.web.service.NewsService;
@Service
public class NewsServiceImpl implements NewsService {
    @Autowired
    private NewsDao dao;
    public List<CC> queryNewsByContent(String content) {
        if(content==null){
            content="";
        }
        return dao.queryNewsByContent(content);
    }
    
    public void add(String c1,String c2){
        if(c1==null){
            c1="";
        }
        if(c2==null){
            c2="";
        }
        
        dao.add(c1,c2);
    }
}

dao层

package cn.et.web.dao.impl;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;


import org.omg.CORBA.PUBLIC_MEMBER;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

import cn.et.web.dao.NewsDao;
import cn.et.web.entity.CC;
@Repository
public class NewsDaoImpl implements NewsDao {
    @Autowired
    private JdbcTemplate jdbc;
    //Map<String, Object>
    
    //查询
    public List<CC> queryNewsByContent(String content) {
        String sql="select * from cc where c1 like '%"+content+"%'";
        return jdbc.query(sql,new RowMapper<CC>(){

            public CC mapRow(ResultSet rs, int rowNum) throws SQLException {
                CC c=new CC();
               c.setC1(rs.getString("C1"));
               c.setC2(rs.getString("C2"));
               return c;
            }
        });
    }


    //新增
    public void add(String c1, String c2) {
       String sql="insert into cc (c1,c2) values('"+c1+"','"+c2+"')";
        jdbc.execute(sql);
    }
}

freemarker页面

<form action="NewsController" method="get">
	<input type='text' name="temp" value=""/>
	<input type='submit' value='查询'/><br/>
</form>
<a href="AddService.html">新增</a>
<#list newsList as temp>
	${temp.c1}
	${temp.c2}<br/>
</#list>

增加的页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="AddService" method="post">
		请输入c1:<input type='text' name="c1"><br/>
		请输入c2:<input type='text' name="c2">
		<input type='submit' value='确定'/>
	</form>
</body>
</html>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值