Mysql知识概述

1:JDBC简述

JDBC:JAVA Database connectivity   java数据库连接

数据库有哪些:MySql Oracle  SqlServer 

平常java连接数据库是通过数据库各自提供的jar包来进行访问,后来sun公司做了一个规范JDBC来连接各种数据库。

使用JDBC步骤:

package li;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;



public class MainTest {



	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 Connection conn=null;
		 Statement  st=null;
		 ResultSet rs=null;
			try {
				//1.注册驱动
				DriverManager.registerDriver(new com.mysql.jdbc.Driver());
				//2.建立连接 参数一:协议+访问的数据库
				 conn= DriverManager.getConnection("jdbc:mysql://localhost/student", "root", "123456");
				//3.创建Statement对象,与数据库打交道
				 st=conn.createStatement();
				//4.执行查询
				String sql="select * from t_stu";
				 rs=st.executeQuery(sql);
				//5.遍历
				while(rs.next()) {
					int id=rs.getInt("id");
					String name=rs.getString("name");
					int age=rs.getInt("age");
					System.out.println("id="+id+"name="+name+"age="+age);
				}
				
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} finally {
				JDBCUtil.release(conn, st, rs);;
			}
			
		
	}

}
package li;
//释放资源
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class JDBCUtil {
		public static void release(Connection conn,Statement st,ResultSet rs) {
			closeb(conn);
			closec(rs); 
			closea(st);
		}
	
	private static void closea(Statement st) {
		try {
			if(st!=null) {
				st.close();
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			st=null;
		}
	}
	private static void closeb(Connection conn) {

		try {
			if(conn!=null) {
				conn.close();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			conn=null;
		}
	}
	
	
	private static void closec(ResultSet rs) {

		try {
			if(rs !=null) {
				rs.close();
			}
		
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			rs=null;
		}
	}
}

预防驱动二次注册:Class.forname("com.mysql.jdbc.Driver");

使用properties配置文件

1.在src声明一个文件  xx.properties,里面内容如下:

 url=jdbc:mysql://localhost/student
 root=root
 password=123456
 driver=com.mysql.jdbc.Driver

2.在工具类里面,使用静态代码块,读取属性

try {
			Class.forName(driverClass);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	
//	DriverManager.registerDriver(new com.mysql.jdbc.Driver());
	//2.建立连接 参数一:协议+访问的数据库
	   try {
		con=DriverManager.getConnection(url, root, password);
		
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}finally {
		return con;
	}

数据库增删改查:增 insert into t_stu(name,age) values('wangqiang',28)

                             删 delete from t_stu where id=5

                             改 update t_stu set age=13 where id=3

                             查 select * from t_stu

测试代码:

1.定义一个类。Testxxx,里面定义方法 testXXX

2.添加junit的支持

   在工程上点击右键---add Library---Junit---Junnit4(默认就好)

 3.在方法上面加上注解,其实就是一个标记

4.在将要测试的方法名上点击右键,执行单元测试

代码如下(查询):

package li;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.jupiter.api.Test;
	
public class TestThree {
	     @Test
		public void testQuery() {
			Connection conn=null;
		    Statement st=null;
		    ResultSet rs=null; 
			 conn= JDBCUtil.getCon();
			try {
				//2.根据连接对象,得到statement
				 st = conn.createStatement(); 
				
				//3.执行sql语句,返回ResultSet0
				String sq="select * from t_stu";
				rs = st.executeQuery(sq);
				//4.遍历
				while(rs.next()) {
					String name=rs.getString("name");
					int age= rs.getInt("age");
					System.out.println(name+" "+age);
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally {
				JDBCUtil.release(conn, st, rs);
			}
		}
	}

如果是增删改

代码如下:

这是增的示例,如果要写改查的,改一下sql语句即可
@Test
	     public void testinsert() {
				Connection conn=null;
			    Statement st=null;
			   				 conn= JDBCUtil.getCon();  
				try {
					//2.根据连接对象,得到statement
					 st = conn.createStatement(); 
					
					//3.执行sql语句,返回ResultSet0
					String sq="insert into t_stu values(null,'bihao',50)";//sql语句在这
					 int result= st.executeUpdate(sq);
					//4.遍历
					if(result>0) {
						System.out.println("添加成功");
					}else {
						System.out.println("添加失败");
					}
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}finally {
					JDBCUtil.release(conn, st);
				}
			}

JDBC Dao模式:

1新建一个dao接口,里面声明数据库访问规则

package com.dao;

public interface UserDao {
	
	void findAll();
}

2.新建一个dao的实现类,具体实现早前定义的规则

 package com.dao.impl;

import java.sql.Connection;

import java.sql.ResultSet;
import java.sql.Statement;

import com.dao.UserDao;
import com.util.JDBCUtil;

public class UserDaoImpl implements UserDao{

	@Override
	public void findAll() {
		
		ResultSet rs=null;
		Statement st=null;
		// TODO Auto-generated method stub
		Connection conn=null;
		 try {
			 conn=JDBCUtil.getCon();
			 st = conn.createStatement();
			String sql = "select * from t_stu";
			  rs = st.executeQuery(sql);
			  while(rs.next()) {
				  String name=rs.getString("name");
				  int age=rs.getInt("age");
				  System.out.println(name+" "+age);
			  }
			  
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}finally {
			JDBCUtil.release(conn,st,rs);
		}
	}

}

3.直接实现 

package com.test;

import org.junit.Test;


import com.dao.UserDao;
import com.dao.impl.UserDaoImpl;

public class UserTest {
	@Test
			public void testFindAll(){
				UserDao dao=new UserDaoImpl();
				dao.findAll();
			}
}

猜你喜欢

转载自blog.csdn.net/lj121829/article/details/84303741
今日推荐