oracle数据库与Java的连接

1.首先要在oracle中

(1)新建用户

(2)赋予权限

(3)然后新建表

(4)插入数据

这些内容,我之前有提过

2.使用eclipse,为了以后方便使用JavaWeb,所以使用JavaEE;

3.目录结构

4.连接数据库

扫描二维码关注公众号,回复: 10212541 查看本文章

(1)先build path ojdbc6jar包

(2)写配置文件:config.properties

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
name=jf1909
password=123456

(3)写数据库连接类:DBUtil

package util;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class DBUtil {
    //变量
	private static Properties pro=new Properties();
	//静态块
	static {
		try {
			pro.load(new FileInputStream("config/config.properties"));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	//连接数据库
	public static Connection getConnection() {
		Connection conn=null;
		//反射机制
		try {
			
			Class.forName(pro.getProperty("driver"));
			String url=pro.getProperty("url");
			String username=pro.getProperty("name");
			String password=pro.getProperty("password");
			conn=DriverManager.getConnection(url,username,password);
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	//关闭数据库
	public static void closeConn(Connection conn,PreparedStatement ps,ResultSet rs) {
		if(rs!=null) {
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(ps!=null) {
			try {
				ps.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		if(conn!=null){
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	public static void main(String [] args) {
		Connection conn=DBUtil.getConnection();
		System.out.println(conn);
	}
}

(4) bean对象

User

package bean;

public class User {
   private int userId;
   private String username;
   private String userAccount;
   private int sex;
   private String birthday;
public User(int userId, String username, String userAccount, int sex, String birthday) {
	super();
	this.userId = userId;
	this.username = username;
	this.userAccount = userAccount;
	this.sex = sex;
	this.birthday = birthday;
}
public User() {
	super();
}
public int getUserId() {
	return userId;
}
public void setUserId(int userId) {
	this.userId = userId;
}
public String getUsername() {
	return username;
}
public void setUsername(String username) {
	this.username = username;
}
public String getUserAccount() {
	return userAccount;
}
public void setUserAccount(String userAccount) {
	this.userAccount = userAccount;
}
public int getSex() {
	return sex;
}
public void setSex(int sex) {
	this.sex = sex;
}
public String getBirthday() {
	return birthday;
}
public void setBirthday(String birthday) {
	this.birthday = birthday;
}
   
}

(5)接口

UserDao

package dao;

import java.util.List;

import bean.User;

public interface UserDao {
	//插入
 public int insertUser(User user);
    //查询
 public List<User> queryUsers(User user);
}

(6)实现类

UserDaoImpl

package dao;

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

import bean.User;
import util.DBUtil;

public class UserDaoImpl implements UserDao {

	@Override
	public int insertUser(User user) {
		
		Connection conn=DBUtil.getConnection();
		PreparedStatement ps=null;
		ResultSet rs=null;
		String sql="INSERT INTO T_USER(USER_ID,USER_ACCOUNT,REAL_NAME,SEX,BIRTHDAY) VALUES(SEQ_T_USER.NEXTVAL,?,?,?,TO_DATE(?,'yyyy-mm-dd'))";
		try {
			ps=conn.prepareStatement(sql);
			ps.setString(1, user.getUserAccount());
			ps.setString(2, user.getUsername());
			ps.setInt(3, user.getSex());
			ps.setString(4,user.getBirthday());
			return ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return 0;
	}

	@Override
	public List<User> queryUsers(User user) {
		List<User> users=new ArrayList<User>();
		Connection conn=DBUtil.getConnection();
		PreparedStatement ps=null;
		ResultSet rs=null;
		String sql="SELECT USER_ID,USER_ACCOUNT,REAL_NAME,BIRTHDAY FROM T_USER WHERE 1=1";
			try {
				//这是动态拼接查询条件
				if(user.getUsername()!=null && user.getUsername().equals("")) {
					sql+= "AND REAL_NAME LIKE ?";
				}
				ps=conn.prepareStatement(sql);
				//有多个条件+多个条件的判断
				if(user.getUsername()!=null && user.getUsername().equals("")) {
					ps.setString(1, "%"+user.getUsername()+"%");
				}
				rs=ps.executeQuery();
				while(rs.next()) {
					String userName=rs.getString("REAL_NAME");
					int userId=rs.getInt("USER_ID");
					User temp=new User();
					temp.setUserId(userId);
					temp.setUsername(userName);
					users.add(temp);
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally {
				DBUtil.closeConn(conn, ps, rs);
			}
		return users;
	}
 
}

(7)在DBUtil中测试

这表示数据库连接成功

(8)新建测试类:UserDaoTest

package dao;

import bean.User;

public class UserDaoTest {
 public static void main(String[] args) {
	 UserDao userdao=new UserDaoImpl();
	 User user=new User(0,"zhangfuqi","张福气",0,"1992-11-11");
	 
	 int result=userdao.insertUser(user);
	 System.out.println(result>0?"成功":"失败");

	 
 }
 
}

return 返回成功的条数会 > 0

数据插入成功

发布了143 篇原创文章 · 获赞 92 · 访问量 8863

猜你喜欢

转载自blog.csdn.net/weixin_42995083/article/details/104150773