首先是关于近日做的JDBC方面的东西
关于连接数据库,首先我们要创建一个DBConnection的类用于连接
package database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* Created by Chen Meiji on 2015/11/28.
*/
public class DBConnection {
/** 数据库地址 jdbc:mysql://[ip]:[port]/[name] */
private static final String URL = "jdbc:mysql://localhost:3306/xue_xiao";
/** 用户名 */
private static final String USERNAME = "root";
/** 密码 */
private static final String PASSWORD = "dz6106232";
/** 驱动器类 */
private static final String DRIVER = "com.mysql.jdbc.Driver";
//注册驱动器类
static {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取数据库连接
* @return Connection
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
/**
* 关闭相关资源
* @param connection 连接
* @param statement 陈述
* @param resultSet 结果集
*/
public static void close(Connection connection, Statement statement, ResultSet resultSet) {
try {
if(connection != null) {
connection.close();
}
if(statement != null) {
statement.close();
}
if(resultSet != null) {
resultSet.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭相关资源 重载
* @param connection 连接
* @param statement 陈述
*/
public static void close(Connection connection, Statement statement) {
close(connection, statement, null);
}
public static void main(String[] args) throws SQLException {
Connection connection = DBConnection.getConnection();
System.out.println(connection);
}
}
这个类要注意URL的格式
jdbc:mysql//localhost:3306:/xue_xiao;
驱动器
com.mysql.jdbc.Driver;
关于这些都要定义为常量
即:public static fianl String
然后是注册驱动器
这里主要用到静态代码块和映射
Class.forName(Driver)
classNOFoundException e
然后是连接数据库
静态的返回类型为Connection 用过getconnection()但是要注意数据库异常的抛出
通过DriverManager.getconnection(URL,USERNAME,PASSWORD)来实现连接
连接后就是关于异常的后腰关闭相关链接的处理
然后关闭相关资源的重载
然后再main函数中启动
Connection connection=DBConnection.getConnection();
System.out.println(connection);
然后进行的就是属性的封装
然后就是DAO来实现数据库的增删改查
首先肯定先要连接上数据库
private Connection connection;
构public UserDAO(Connection connection){
this.connection=connection
try{
connection.setAutoCommit(true);
}
catch(SQLException e){
e.printStackTrace();}
}
然后就是一些相关的简单的SQL语句
INSERT INTO user(属性) valuses=(?,?,?)
DELETE FROM users WHERE id=?
SELECT FORM users WHERE name=?
UPDATE users set name WHERE id=?
这里主要要注意的是除了查找statement.excuteQuery
Query既是查询
statement.excuteUpdate
然后是关于main函数中对于方法的调用通过构造方法
UserDAO userDAO=new UserDAO(DBConnection.getConnection());
然后是这次关于外键的设置,在Navicat里面无法进行更改外键的约束应该是由于安全级别的问题,然后可以在MYSQL中通过以下的联级关联
alter table (表名) add constriant FK_ID foreign key(你的外键的字段名)REFERENCES (外表表名)(字段名)
alter talbe userfriends add constriand FK_ID foreign key(userID) REFERENCES user(userID)
on delete CASCADE
on update CASCADE;
删除外键
alter table (name) DROP FOREIGN KEY FK-ID;
查看外键
show create table (tablename);
CASCADE
RESTRICT
SET NULL
NO ACTION
在设置外键的时候两字段名都要是主键,通过外键的设置就能实现1对多的管理。
接下来是关于这次笔记本的一些总结
这次使用的是HashMap来通过他的put,remove,get来实现增删改查
要使用它当然要new一个实例对象
HashMap<String,String> map=new HashMap()由于他是<key,value>所有要用到泛型进行约束
中间的操作我们可以通过Scanner来实现
开始的时候我用的<int,String>然后报错,因为超过了int的范围,用String就可以实现
这里涉及到HashMap的遍历我们可以通过
Set<String> keys=map.keySet();
for(String k:keys);
来实现遍历这里的k对应的就是键,通过map.get(k)来得到值;
关于查找的时候我们通过遍历然后equals方法进行判断改对象是否存在。
说到这里有HashMap有contains方法可以进行判断key,value的存在。
说到HashMap就不到不谈到ArrayList