当前位置: 首页>编程语言>正文

ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤

序言:为了避免学了又忘,趁还完全忘记,用csdn记录下来,本篇文章简单介绍两种连接数据库,并调用数据库数据的方法。第一种比较简单,很容易理解。第二种配置文件比较多一点点(仅一点点),层次可能更清明点,根据自己需要来看吧。
依赖jar和配置:
链接:https://pan.baidu.com/s/1NLTggGSjFQ6TWwsFqSK4IQ
提取码:8dfe


超详细:Java 两种连接数据库的方式 SSM架构和一种超简单的方法

  • 简单架构
  • .
  • SSM架构
  • 第一阶段 写配置文件
  • 第二阶段 获取数据


简单架构

.

第一步 创建一个Dynamic Web Projiect项目

第二步 导入依赖包,使用这种方法用到的依赖包很少只有两个(感觉只需要mysql包就好,毕竟另一个只是用来处理JSON字段的),导入到该项目下的 WebContent → WEB-INF → lib 里面,直接复制粘贴就好了

ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤,ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤_数据库,第1张

第三步 在Java Resource → src 文件夹下建两个包,一个包用来存放连接数据库的配置文件,一个包用来存放接口的文件

ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤,ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤_数据库_02,第2张

第四步 就这步比较复杂,也是最需要练的一步。在helper包下建一个类,类的内容如下,主要就是三个函数 一个连接数据库,一个执行查操作,一个执行增,改,删操作。

在写这个的时候就记三个单词 PreparedStatement,ResultSet和ResultSetMetaData,其他的我们可以使用ctrl + 1自动生成

package helper;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.ResultSetMetaData;

public class Helper {
	
	public static Connection getConnection() {
		String url = "jdbc:mysql://localhost:3306/session1"; //连接拿台计算机的数据库 session1为数据库名
		String username = "root"; //账户名
		String password = "123"; //密码
		String driver = "com.mysql.jdbc.Driver"; //数据库 驱动
		try {
			//加载类资源,导入的依赖包里面的
			Class.forName(driver);
			//返回一个 连接属性
			return (Connection) DriverManager.getConnection(url, username, password);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
	
	// 所有需要用到sql查操作的方法都调用这个函数,预先写好sql语句,传递sql语句进来
	// 返回一个数据对象
	public static ArrayList<HashMap<String, Object>> sqlSelect(String sql) {
		// sql 查询会返回多条语句,用列表来存储,HashMap 存储字段和值
		ArrayList<HashMap<String, Object>> array = new ArrayList<HashMap<String, Object>>();		
		try {
			// 核心三条
			// 调用上面定义的连接数据库的函数
			PreparedStatement ps = (PreparedStatement) getConnection().prepareStatement(sql);
			// 返回一个结果集
			ResultSet rs = ps.executeQuery();
			// 返回数据
			ResultSetMetaData rsmd = (ResultSetMetaData) ps.getMetaData();
			int row_number = rsmd.getColumnCount();
			while(rs.next()) {
				// 将数据以键值对的方式存放
				HashMap<String, Object> map = new HashMap<String, Object>();
				for (int i = 0; i < row_number; i++) {
					String name = rsmd.getColumnLabel(i + 1);
					Object value = rs.getObject(i +1);
					map.put(name, value);
				}
				// 键值对存储起来,相当于查询一条语句就会执行一次这个
				array.add(map);
			}
			// 当查询玩所有数据后,关闭连接
			rs.close();ps.close();			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return array;
	}
	
	public static void sqlChange(String sql) {
		try {
			//  连接,执行,关闭 
			PreparedStatement ps = (PreparedStatement) getConnection().prepareStatement(sql);
			// 因为在数据库中执行增,改,删返回的是执行的数据条数,可以输出在控制台看是否执行了
			int i = ps.executeUpdate();
			System.out.println("change row number is" + i);
			ps.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

第五步 在servlet包下创建一个servlet项目,新建可能会报错,如果报错为
Httpservlet cannot be resolved to a type参考添加链接描述 在这步我们简单的执行一个查和改操作,为了避免增大文章篇幅,我将在servlet中直接调用方法,当自己创建项目的时候,一定要分开来写。
写在get和post 方法都不影响访问,我这是写在get放法中的

// 定义一个查询sql语句
		String sql_one = "select * from users limit 5";
		// 调用查询函数
		ArrayList<HashMap<String, Object>> list = Helper.sqlSelect(sql_one);
		
		// 定义一个改sql语句
		String sql_two = "update users set firstName = 'my' where UserId = 1";
		// 调用改操作函数
		Helper.sqlChange(sql_two); // 可以通过控制台看改变的行数
		// 将查询操作的结果返回到前端
		
		response.getWriter().append(list.toString());

第六步 检验前面的努力是否白费了,在浏览器中输入自己Servlet接口的路径http://localhost:8080/项目名/接口名(Servlet的名字);

可以看到response.getWriter().append(list.toString());语句将我们找到的数据返回到了前段

ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤,ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤_xml_03,第3张

我们在Helper类中的更改方法的输出也被执行了

ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤,ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤_mysql_04,第4张

这就是使用比较简单 一种方法连接数据库的方式,只有三个函数,只需记得三个单词就可以自己敲出来了。

SSM架构

前言:使用这个架构来详写,有点太抽象了。而我也仅仅只是为了记录所学,将自己的理解注释于中,并没有能力将这个讲述的很清楚。

使用SSM架构时,老师将一些不太好理解的资源文件也一同下发到文件夹里面了,所以在写例子的时候我也会用到那些文件,因为有些确实靠自己是敲不出来的,

第一阶段 写配置文件

第一步 依然是创建一个Dynamic Web Projiec项目,但是这里我们需要点击下一步然后把web.xml文件给勾上

ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤,ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤_xml_05,第5张

第二步 导包,用这个方法导入的包比较多有八个,依然是导入WebContent → WEB-INF → lib 里面,这里面的web,xml文件是在WEB-INF文件下面,不是在lib文件下面

ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤,ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤_xml_06,第6张

第三步 在src文件夹下导入预先准备好的两个xml文件,(预先准备好,是因为这两个头文件实在是太难写了,但是里面的其他的bean对象就要自己来写了,在这里我们不先写这个配置文件,先把web.xml文件的内容写好),然后在创建一个mapper包,这个包后面主要用来存放sql语句的,如果不创建的话加载资源时会出错。

ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤,ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤_数据库_07,第7张

可以看到这两个头文件是非常复杂的,而且没有去记的必要

ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤,ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤_mysql_08,第8张

第四步 配置好web.xml文件。 这里所有的servlet-class里面的内容都不是手打的,起先可以根据路径到Libraries→Web App Libraries下面这些包去找

<?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_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SSM</display-name>
  <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>
  
<!--   找到src文件下的applicationContext.xml文件 -->
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:spring-mvc.xml</param-value>
  	</init-param>
  </servlet>  
  
  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping>
  
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
</web-app>

第五步 配置src下的spring-mvc.xml文件,因为这个配置很简单优先配置这个

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">

	<!-- 扫描controller包 -->
	<context:component-scan base-package="pers.test.controller"></context:component-scan>
	
	<mvc:annotation-driven></mvc:annotation-driven>

	<!-- 当你有html文件需要加载时一定要配置这个,要不然可能访问不到 -->
	<mvc:default-servlet-handler/>

</beans>

第六步 配置applicationContext.xml文件,这步很复杂,而且不知道是什么原因,这里面的id都只能这样写,我试着写成其他的运行时会报错

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">
	
	<!-- 扫描所有包 -->
	<context:component-scan base-package="pers.test"></context:component-scan>
	
	<!-- 配置数据源 -->
	<bean id = "dataSource" class = "org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="url" value = "jdbc:mysql://localhost:3306/session1?characterEncoding=utf-8&serverTimezone=UTC"></property>
		<property name="username" value = "root"></property>
		<property name="password" value = "123"></property>
		<property name="driverClassName" value = "com.mysql.cj.jdbc.Driver"></property>
	</bean>
	
	<!-- 配置会话工厂 -->
	<bean id ="sqlSessionFactory" class = "org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref = "dataSource"></property>
		<property name="mapperLocations" value = "classpath:mapper/*.xml"></property>
	</bean>
	
	<!-- 配置映射对象,SQL语句的映射 -->
	<bean class = "org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value = "pers.test.dao"></property>
		<property name="sqlSessionFactoryBeanName" value = "sqlSessionFactory"></property>
	</bean>

</beans>

第七步 主要的配置文件都写好了,写一个测试用例,测试一下我们的web.xml文件是否写错。 创建一个pers.test.controller包,包下建立一个ControllerTest类,

ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤,ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤_mysql_09,第9张

类的内容

package pers.test.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class ControllerTest {
	
	//这个是你访问的接口的名字
	@RequestMapping("hello")
	@ResponseBody
	String sayHello() {
		return "Hello World !";
	}

}

ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤,ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤_spring_10,第10张

通过前段访问,我们访问到了该结构返回的一个String字段。但是这个例子与数据库毫无关联,但是也要写,是为了后面出现错误能缩小错误的范围

第二阶段 获取数据

第一步 建包,先把需要的包都建好,需要注意的是如果包名在相同的情况下,并且没有资源会被合并,所以建议建一个包在包下创建一个资源。为了减小篇幅我只建一个包pers.test.dao包,然后在里面创建一个Interfac接口

ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤,ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤_mysql_11,第11张

第二步 写SQL语句,在mapper包下建立一个.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">

<!-- namespace是你的SQL语句映射到dao包下的接口文件 -->
<mapper namespace = "pers.test.dao.TestDao">
	<!-- 这个Id必须和你pers.test.dao.TestDao下的方法名一模一样 -->
	<select id="testSelect" resultType="HashMap">
		select * from users limit 5
	</select>

</mapper>

第三步 在TestDao接口下,声明一个与select语句id同名的方法,

package pers.test.dao;

import java.util.HashMap;
import java.util.List;

public interface TestDao {
	
	List<HashMap<String, Object>> testSelect();

}

第四步 数据调用,在TestController下调用接口

package pers.test.controller;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import pers.test.dao.TestDao;

//千万不能忘记这个注解啊
@Controller
public class ControllerTest {
	
	//先声明接口文件
	@Resource
	TestDao testDao;
	//这个是你访问的接口的名字
	@RequestMapping("hello")
	@ResponseBody
	Object sayHello() {
		return testDao.testSelect();
	}

}

通过接口访问我们可以看到访问到了我们sql查询到的语句

ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤,ssm 添加druid数据库连接池 maven 爆红 ssm连接数据库步骤_xml_12,第12张

更改操作和这个也差不多,但是需要注意的是,xml里面的SQL语句接受参数是通过键值对来的,而不是直接使用参数,所以在dao包下的方法传参数也应该以键值对来传参数。



https://www.xamrdz.com/lan/5gr1962521.html

相关文章: