Spring小白第四篇

简单项目,用最基础的方法实现mysql数据库中flower表的增加数据和查看表中所有内容
项目完整百度云盘链接:链接:https://pan.baidu.com/s/1UiAUwA5oth4oFqGCIoItiQ
提取码:oe0n
复制这段内容后打开百度网盘手机App,操作更方便哦

在这里插入图片描述

MVC开发模式:

  1. M:Model模型,实体类和业务和dao
  2. V:view 视图 JSP
  3. C:Controller 控制器 servlet
    3.1 作用:视图和逻辑分离
    4.MVC 适用场景:大型项目开发
    5.图示例
    5.1 先设计数据库
    5.2 先写实体类
    5.3 持久层
    5.4 业务逻辑
    5.5 控制器
    5.6 视图
    视图
    控制器
    Service :业务逻辑
    DAO:数据库访问对象
    DB:数据库

什么是框架?

1.框架:软件的半成品,未解决问题制定的一套约束,在提供功能基础上进行扩充。
2.框架中一些不能被封装的代码(变量),需使用框架者新建一个xml文件,在文件中添加变量内容。
2.1需要建立特定位置和特定名称的配置文件。
2.2 需要使用xml解析技术和反射技术
3.常用概念
3.1 类库:提供的类没有封装一定逻辑。
举例:类库就是名言警句,写作文时引入名言警句。没有逻辑,只是一些有某种作用的类,装饰。
3.2框架:区别与类库,里面有约束。
框架是别人写的,想要运用框架,就必须要遵循框架开发者的规则。
是填空题,有选择,也有规则。剔除一些干扰,给自己设置了限制。对初学的我来说,目前还接触不到边线,所有学习进步空间很大。

MyBatis简介

  1. Mybatis 开源免费框架,原名iBatis.
  2. 2010在google code 2013年迁移到github
  3. 作用:数据访问层框架(底层是对JDBC的封装)
  4. mybatis优点:
  5. 1.使用mybatis时不需要编写实现类,只需要写需要执行的sql命令。
  6. 简化编程操作,提升业务完成效率

mysql8数据库连接到项目 需要用连接jar包也要用8版本的,另外driver 和URL也需要改 参考下面的连接代码,连接池同样适用

package com.bjsxt.dao.impl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.bjsxt.dao.FlowerDao;
import com.bjsxt.pojo.Flower;
/**
 * 数据访问层要有异常处理
 * @author 幽冥天河
 *
 */
public class FlowerDaoImpl implements FlowerDao {
	@Override
	public List<Flower> selAll() {
		//jdk 1.7 开始后面泛型可以省略
		List<Flower> list = new ArrayList<>();
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/ssm?useSSL=false&serverTimezone=UTC","root","123");
			ps= conn.prepareStatement("select * from flower");
			rs= ps.executeQuery();
			while(rs.next()) {
				list.add(new Flower(rs.getInt(1),rs.getString(2),rs.getDouble(3),rs.getString(4)));
			}
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				ps.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return list;
	}

	@Override
	public int insFlower(Flower flower) {
		int index = 0;
		Connection conn = null;
		PreparedStatement ps = null;
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/ssm?useSSL=false&serverTimezone=UTC","root","123");
			ps= conn.prepareStatement("insert into flower values(default,?,?,?)");
			ps.setObject(1, flower.getName());
			ps.setObject(2, flower.getPrice());
			ps.setObject(3, flower.getProduction());
			index = ps.executeUpdate();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				ps.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return index;
	}
}

表单的非空验证jquery来写 需导入相应jar包,最好是js文件

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-1.7.2.js"></script>
<script type="text/javascript">
	//页面加载完成后执行
	//相当于: window.function(){}  $().ready(function(){});  表单的非空验证
	$(function(){
		$("form").submit(function(){
			if($(":text:eq(0)").val()==""||$(":text:eq(1)").val()==""||$(":text:eq(2)").val()==""){
		
				alert("请填写完整信息");
				//阻止默认行为
				return false;
			}
			
		});
	});
	
</script>

</head>
<body>
<!--post:
		 字节流
		 2GB
		 更安全
		 相对效率低
	get:
		字符流
		 2KB
 -->
<form action="insert" method="post">
<table border="1" align="center">
	<tr>
		<td colspan="2" style="text-align:center;font-size:30px;font-weight:bold;">
			花卉信息
		</td>
	</tr>
	<tr>
		<td><b>花卉名称:</b></td>
		<td><input type="text" name="name"/></td>
	</tr>
	<tr>
		<td><b>花卉价格:</b></td>
		<td><input type="text" name="price"/></td>
	</tr>
	<tr>
		<td>原产地:</td>
		<td><input type="text" name="production"/></td>.
	</tr>
	<tr>
		<td colspan="2" align="center">
			<input type="submit" value="提交"/><input type="reset" value="重置"/>
		</td>
	</tr>
</table>
</form>
</body>
</html>

表单验证提示

在这里插入图片描述

插入操作

在这里插入图片描述

查询结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值