学习大数据的第38天(mysql篇)——jdbc、自定义工具类和配置文件的方法改进jdbc、如何创建maven项目、Git的使用方法以及创建spring项目的方法
1.加载驱动程序
Class.forName(“com.mysql.jdbc.Driver”);
2.获得数据库链接
Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
Statement st=conn.createStatement();
//boolean execute = st.execute(sql);
ResultSet rs=st.executeQuery(sqlString);
4.处理数据库的返回结果(使用ResultSet类)
while(rs.next()){
System.out.println(rs.getString(“DNAME”)+" "
+rs.getString(“LOC”));
}
5.关闭资源
rs.close();
st.close();
conn.close();
自定义工具类MysqlUtil
package mysql02;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
/**
* mysql连接工具类
* 利用配置文件进行改进,便于软件的维护
*/
public class MysqlUtilProper {
private static Connection conn = null;
private static PreparedStatement ps = null;
private static ResultSet rs = null;
private static String DRIVER = null;
private static String URL = null;
private static String USERNAME = null;
private static String PASSWORD = null;
static {
try {
Properties properties = new Properties();
InputStream is = MysqlUtil.class.getClassLoader().getResourceAsStream("mysql02.properties");
properties.load(is);
DRIVER = properties.getProperty("driver");
URL = properties.getProperty("url");
USERNAME = properties.getProperty("u");
PASSWORD = properties.getProperty("p");
Class.forName(DRIVER);
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConn() {
return conn;
}
public static PreparedStatement getPs(String sql, String... args) {
try {
ps = conn.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
for (int i = 0; i < args.length; i++) {
try {
ps.setString(i + 1, args[i]);
} catch (SQLException e) {
e.printStackTrace();
}
}
return MysqlUtilProper.ps;
}
public static int getRsUpdate() {
int i = 0;
try {
i = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
public static ResultSet getRsSelect() {
try {
rs = ps.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public static void closeAll() {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
测试类:
package mysql02;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class MysqlTestCopy {
public static void main(String[] args) throws Exception {
// reg();
login();
}
/*
登陆
*/
public static void login() throws Exception {
Connection conn = MysqlUtilProper.getConn();
String sql = "select *from user where username=? and password=?";
MysqlUtilProper.getPs(sql,"root","123456");
ResultSet rs = MysqlUtilProper.getRsSelect();
if(rs.next()){
System.out.println("登录成功");
}else{
System.out.println("登录失败");
}
MysqlUtilProper.closeAll();
}
/*
注册
*/
public static void reg() throws Exception {
Connection conn = MysqlUtilProper.getConn();
String sql = "insert into user(username,password) values(?,?)";
MysqlUtilProper.getPs(sql,"test","123456");
int i = MysqlUtilProper.getRsUpdate();
System.out.println(i);
MysqlUtilProper.closeAll();
}
}
利用读取配置文件来连接数据库进行操作(方便上线之后,对代码的维护)
package mysql02;
import java.io.InputStream;
import java.util.Properties;
/**
* java读取配置文件
* 通过提供的Properties
*
*/
public class ProperTest {
public static void main(String[] args) throws Exception {
Properties properties = new Properties();//等同于配置文件
/**
* 手动指定等同于哪个配置文件
* 通过IO流读取文件
* 使用反射读取配置文件
*/
InputStream is = ProperTest.class.getClassLoader().getResourceAsStream("mysql02.properties");
/**
* 把读取的配置文件和properties对象建立连接
*properties.load(is)
*/
properties.load(is);
String u = properties.getProperty("u");
String p = properties.getProperty("p");
System.out.println(u);
System.out.println(p);
}
}
mysql02.properties文件
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://master:3306/shujia
u=root
p=123456
实现网页json数据、字符串以及自定义对象之间的转换
package TestDemo;
import com.google.gson.Gson;
/*
{"id":1001,"name":"zs","age":"20","sex":"男"}
JSON:String 中存储的是HASHMAP{K,V}
通过第三方工具,把JOSN解析成KV结构就可以通过k获取v
1、GSON
*/
public class Demo01_JSON {
public static void main(String[] args) {
// JOSN类型的数据
String str = "{\"id\":1001,\"name\":\"zs\",\"age\":\"20\",\"sex\":\"男\"}";
System.out.println(str);
//创建Gson对象,通过对象来转换josn
/**
* 将JOSN数据转换为一个类型的对象
*/
Gson gson = new Gson();
//如果 创建的类中的名字不一样,没有读到,不会报错,但是不会读到数据
//如果匹配的类型不一样,会报错,会变成类型转换异常,强类型语言的特点
Student student = gson.fromJson(str, Student.class);
System.out.println(student);
/**
* 将对象转换为JOSN数据
*/
String s = gson.toJson(student);
System.out.println(s);
}
}
package TestDemo;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
/**
* 通过第三方工具,把JOSN解析成KV结构就可以通过k获取v
* 2、fastjosn
*/
public class Demo02_FastJOSN {
public static void main(String[] args) {
String str = "{\"id\":1001,\"name\":\"zs\",\"age\":\"20\",\"sex\":\"男\"}";
System.out.println(str);
/**
* 将字符串转化为KV结构,转化成json对象,可以根据这个对象直接使用k获取v
*/
JSONObject jsonObject = JSON.parseObject(str);
Object id = jsonObject.get("id");
System.out.println(id);
/**
* 将json对象转换为json字符串
*/
Object json = JSON.toJSON(jsonObject);
System.out.println(json);
/**
* 转换为自己创建的类
*/
Student student = JSON.parseObject(str, Student.class);
System.out.println(student);
/**
* 对象转化为json字符串
*/
Object o = JSON.toJSON(student);
System.out.println(o);
}
}
Git的使用
如何使用Git工具
下载Git并安装
在本地创建仓库:
指定本地的目录当作Git的仓库,注意目录中内容颜色的划分
将代码添加到指定的仓库中,点完之后,颜色变绿,但是还是没有添加进去
红色:没有添加到仓库中,再仓库中存在
绿色:选中准备添加但是还没有添加
提交代码
以及上交至Gitee上,push和poll操作
如何创建一个spring项目
在idea中创建spring项目
第一步:idea默认不支持spring项目的,所以首先得下载包 intellij-spring-assistant-1.3.1
第二步:在创建项目时,选择包的位置
第三步:安装Kotlli插件
第四步:创建spring项目
以及spring项目的小实例
- springboot的使用
- 前后端交互
- 项目的上线
- 项目上线之后不会停,除非自己手动关机
- 前后端交互
- 前端:页面
- 后端:代码
package com.shujia.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
/**
* spring可以自动实现前后端交互
* 注解的方式:
* 后端数据传给前端
* 前端数据传给后端
*/
/*
能够把数据返回给前端的页面
RestController会通过反射把这个类和一个IP地址绑定
http://localhost
*/
/**
* 1、spring会自动扫描当前包下的所有类,如果这个类中有注解,spring会通过反射创建当前类的对象
* 2、spring方法上的注解,会绑定到一个地址上面
* 例如:test()方法,地址为http://localhost:8080/test
*/
@RestController
public class TestController {
public TestController(){
System.out.println("TestController已经被实例化");
}
@GetMapping("/test")
public String test(){
return "你好";
}
@GetMapping("/show")
public String show(){
return "ok";
}
/**
* 返回页面的map数据会被自动转换为json数据{"szh":"szh","yl":"yl"}
*/
@GetMapping("/getMap")
public HashMap<String,String> getMap(){
HashMap<String, String> map = new HashMap<>();
map.put("yl","yl");
map.put("szh","szh");
return map;
}
}