ORMAPPING 简单实现

package com.nintenyun.hibernate.model;

public class Teacher {
	private int id;
	private String name;
	private String title;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	
	  
}

 

import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.HashMap;
import java.util.Map;

import com.nintenyun.hibernate.model.Teacher;


public class Session {
	Map<String,String> cfs = new HashMap<String,String>();
	String[] methodNames ;
	String tableName = "_teacher";

   public Session(){
	   cfs.put("_id","id");
	   cfs.put("_name","name");
	   cfs.put("_title","title");
	   methodNames = new String[cfs.size()];
	   }
   public void save(Teacher t) throws Exception{
	
	   String sql = createSQL();
	   Class.forName("com.mysql.jdbc.Driver");
	   Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/hibernate_or","root","nin");
	   PreparedStatement ps = conn.prepareStatement(sql);
	   for(int i = 0;i<methodNames.length ; i++){
		   Method m  = t.getClass().getMethod(methodNames[i]);
		   Class r = m.getReturnType();
		   
		   if(r.getName().equals("java.lang.String")){
			   String returnValue = (String)m.invoke(t);
			   ps.setString(i+1,returnValue);
		   }
		   if(r.getName().equals("int")){
			   Integer returnValue = (Integer)m.invoke(t);
			   ps.setInt(i+1,returnValue);
		   }
	   }
	   ps.executeUpdate();
	   ps.close();
	   conn.close();
   }

private String createSQL() {
	String str1 = "" ;
	String str2 = "" ;
	int index = 0;
	for(String s : cfs.keySet()){
		String v = cfs.get(s);
		v = Character.toUpperCase(v.charAt(0)) + v.substring(1);
		methodNames[index] = "get" + v ;
		str1 += s + ",";
		index ++;
	}
	str1 = str1.substring(0,str1.length()-1);
	for(int i = 0 ;i<cfs.size(); i++){
	  str2 = str2 + "?,";
	}
	str2 = str2.substring(0,str2.length()-1);
	//System.out.println(str2);
	String sql = "insert into " + tableName + "(" + str1 + ")" + " values " + "(" + str2 + ")" ;
	System.out.println(sql);
	return sql;

}
}
 
import com.nintenyun.hibernate.model.Student;
import com.nintenyun.hibernate.model.Teacher;

public class TeacherTest  {
   public static void main(String[] args) throws Exception{
     Teacher t = new Teacher();
     Session session =  new Session();
     t.setId(1);
     t.setName("pass");
     t.setTitle("master");
     session.save(t);

   }
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值